[2013年6月更新:当观察到用户doubleDown时,我的术语有误:方便的C-p
和C-n
按键不 omni 完成(omnicompletion),但 关键字完成。我认为Vim术语在某种程度上是不幸的: omni 是每个的拉丁语,而关键字似乎是一个更受限制的选择。 C-p
和C-n
默认工作方式是完成散文的每个单词,而不仅仅是关键字。这使我认为他们必须 omni 完成,而不仅仅是关键字完成。]
嗯... :-) ...只需输入我问题的标题,highly effective answer就会出现在类似标题的问题目录中。 (这只是为了展示这个网站有多好!)无论如何我都会问这个问题 - 也许有人在商店里有一个更令人满意的答案......所以这里有:
Vim keyword omnicompletion (by default bound to C-p
and C-n
in edit mode)是一个穷人的智力感知,根据我的经验几乎一样好。它在缓冲区中搜索匹配的字符串。
但是,通过使用关键字 omni 完成对包含文件的递归搜索,一些文件类型脚本会超过顶部。 (更新:搜索包含的文件实际上是默认设置,从:help 'complete'
到Vim 7.3可以看到;只是在某些文件类型中,包含了大量内容,导致速度变慢,可能会因次优算法而加剧。)因此,对于Perl脚本,它将开始搜索模块列表。递归。这可以很快退化成一些严肃的扫描,你知道,磁盘I / O和所有那些丑陋的东西。
因此,我宁愿不使用该功能,因为我失去了时间和便利,我不得不使用C-c
中断搜索,这会在输出中留下一些随机字符串然后我必须删除。
因此,到目前为止,最好的解决方案只是通过说:
来禁用默认完成中包含文件的使用:set complete-=i # remedy
:help 'complete' # documentation
要添加什么?
答案 0 :(得分:2)
你应该使用c9s写的perlomni。
https://github.com/c9s/perlomni.vim
http://www.vim.org/scripts/script.php?script_id=2852
您可以看到视频的使用方法。
http://www.youtube.com/watch?v=hZ7871WcIv0
方便,完成方法,键入内容和“ - >”,然后。
#!perl
use strict;
use warnings;
use DateTime;
my $dt = DateTime->new;
$dt->ye # type <c-x><c-o>, you'll get $dt->year
答案 1 :(得分:2)
如果您想要多做一些手术,可以使用:
autocmd FileType perl set complete-=i
这样你就只会影响perl代码的行为。
答案 2 :(得分:1)
我想这个问题真的没有我在我的问题中所说的那样了:
:set complete-=i # remedy
:help 'complete' # documentation
为了给这个多余的答案添加一些Vim新闻,我最近加了我的Vim配置(主要是在Windows上使用GVim),有一个很好的字体和一些很好的插件:
colorscheme evening
“标准,我认为set relativenumber
“标准,但我只是不知道它:)