在 Vim 中,我知道使用 CTRL-n 和 CTRL-p 可以自动完成文档中找到的单词。这对于促进使用描述性方法和变量名称非常有用。
我想将一组我经常使用但不在我当前编辑的源文件中的单词添加到自动完成中。我目前的解决方案是将单词列表添加到模板文件底部的注释中,但这似乎有点浪费和笨拙。
有没有办法将单词添加到 Vim 的自动完成词汇表中,以便每个 Vim 会话都可以访问?
答案1
您可以在~/.vimrc
文件中使用几个单词的缩写:
:abbr super 超级用户 :abbr autoc 自动完成 :abbr que 问题
Space按下或后,这些将自动完成Enter。因此,如果您输入que
然后按下Space或 ,Enter它将为您完成单词“question”。
如果您要添加很多内容并需要此界面:
您可以使用字典只需设置一个文件,每行一个单词,然后在 .vimrc 中添加如下行:
set dictionary+=/home/john/dict.txt
将路径替换为您的字典文件的位置。然后您可以使用Ctrl+x和Ctrl+k来显示建议。Ctrl+n和Ctrl+p从多个选择中选择下一个/上一个。
答案2
Ctrl常规自动完成的“来源”(从+获得的来源N)取自complete
选项(请参阅:h 'complete'
)默认值为
complete=.,w,b,u,t
意思是
.
扫描当前缓冲区w
从其他窗口扫描缓冲区b
扫描缓冲区列表中其他已加载的缓冲区u
扫描缓冲区列表中的未加载缓冲区t
标签完成
你可以添加自己的词典
set complete+=k~/.vim/keywords.txt
并在 中每行添加一个关键字~/.vim/keywords.txt
。这样,您可以直接使用Ctrl+访问补全N(无需使用Ctrl+ X、Ctrl+明确调用字典补全K)。我发现这对于代码补全特别有用,因为我有所有常用的函数名称keywords.txt