小编yul*_*vee的帖子

删除多个VI窗口中的同一行

我喜欢使用vim和vimdiff.我目前正在比较vimdiff中的两个文件,我经常遇到我想在两个缓冲区中删除相同行的情况.在以下示例中,我想删除第40和41行.

39 text_a  |   39 text_b
40 text_aa |   40 text_aa
41 text_bb |   41 text_bb
42 text_c  |   42 text_d
Run Code Online (Sandbox Code Playgroud)

执行dd Ctrl-W-W,dd Ctrl-W-W删除当前窗口中的行,跳转到另一个窗口,删除那里的行并跳回我的原始窗口感觉很繁琐.

有谁知道这个的捷径?

vim vimdiff

4
推荐指数
1
解决办法
334
查看次数

perl - 在作为另一个对象的访问者的对象列表中搜索

我是Perl-OO初学者,我遇到了设计挑战.我希望你能给我一些提示,以获得一个优雅的解决方案.我在这里使用鼠标对象系统.

举个简单的例子,假设我有一个User-Object.用户有一个名字.

package User;
use Mouse;    

has "name" => (
   is        => "rw",
   isa       => "Str|Undef",
);  
Run Code Online (Sandbox Code Playgroud)

然后我有一个User-Cache-Object,它获取所有用户的列表(来自LDAP服务器).您可以说这是用户缓存和用户之间的"有一个"关系.

package UserCache;
use Mouse;    

has "users" => (
   is        => 'rw',
   isa       => 'ArrayRef|Undef',
   default   => sub { [] },
);  
Run Code Online (Sandbox Code Playgroud)

我将此用户列表存储为用户缓存的访问者中的用户对象数组.

 my $cache = UserCache->new();

 foreach my $entry ( $ldap->searchGetEntries() ) { 
      my $user = User->new();
      $user->name($entry->get_value('userdn'));
      push @{ $cache->users }, $user;
 }
Run Code Online (Sandbox Code Playgroud)

现在这就是我的问题所在.如果我想找到具有特定属性的用户对象(例如,名为John的用户),我必须遍历整个用户对象数组并查询每个对象的名称.当给出名称列表时,这会得到一个非常低效的过程.

foreach my $user ( @{ $cache->users } ) {
      if ( $user->name eq 'John' ) {
           #do …
Run Code Online (Sandbox Code Playgroud)

oop perl moose

3
推荐指数
1
解决办法
99
查看次数

标签 统计

moose ×1

oop ×1

perl ×1

vim ×1

vimdiff ×1