在插入模式下,利用自动补全(Insertion-Completion)功能,vim能够根据正在输入的字符,查找匹配的关键字并显示在弹出菜单(popup menu)中。通过选择匹配项,可以补全输入的部分关键字甚至整行文本。
使用Ctrl-N或Ctrl-P快捷键,将按照'complete'选项指定的范围来搜索匹配的关键字。其默认值为:
:set complete=.,w,b,u,t,i
也就是说,默认将在以下来源中查找关键字:
假设文件中包含以下句子:
I have beautiful flowers in my flower garden
我们另起一行并输入“f”字母,然后点击Ctrl-X Ctrl-N快捷键,将会在当前文件内查找已经存在的单词:
而使用Ctrl-N快捷键,将会根据'complete'选项指定的范围进行查找。比如在其它缓冲区内找到了更多以f开头的单词:
通过以下命令设置'complete'选项,可以定义自动补全的查找范围:
:set complete=key,key,key
命令中可能出现的key值如下:
. | 当前缓冲区 |
b | 缓冲区列表中的其它已载入的缓冲区 |
d | 当前文件以及由'include'选项指定的包含进来的文件 查找由'define'选项定义的宏(definition/macro) |
i | 当前文件以及由'include'选项指定的包含进来的文件 |
k | 由'dictionary'选项指定的文件 |
kspell | 当前激活的拼写检查 |
k{dict} | 名为{dict}的文件 |
s | 由'thesaurus'选项指定的文件 |
t | 标签(tags)文件 |
] | |
u | 缓冲区列表中的没有载入的缓冲区 |
w | 在其他窗口中载入的文件 |
使用以下命令,可以将字典文件添加到搜索列表中:
:set complete+=k
使用以下命令,可以将包含的文件从搜索列表中移除:
:set complete-=i
使用:h 'complete'
命令,可以查看'complete'选项的帮助信息。
如果我们使用以下命令,设置了在查找过程中忽略大小写,那么在自动完成时,反而会造成区分大小写:
:set ignorecase
使用以下命令,则可以设置在自动完成时忽略大小写:
:set infercase