我可以将一组单词添加到 Vim 自动完成词汇表中吗?

我可以将一组单词添加到 Vim 自动完成词汇表中吗?

在 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+xCtrl+k来显示建议。Ctrl+nCtrl+p从多个选择中选择下一个/上一个。

答案2

Ctrl常规自动完成的“来源”(从+获得的来源N)取自complete选项(请参阅:h 'complete')默认值为

complete=.,w,b,u,t

意思是

  1. .扫描当前缓冲区
  2. w从其他窗口扫描缓冲区
  3. b扫描缓冲区列表中其他已加载的缓冲区
  4. u扫描缓冲区列表中的未加载缓冲区
  5. t标签完成

你可以添加自己的词典

set complete+=k~/.vim/keywords.txt

并在 中每行添加一个关键字~/.vim/keywords.txt。这样,您可以直接使用Ctrl+访问补全N(无需使用Ctrl+ XCtrl+明确调用字典补全K)。我发现这对于代码补全特别有用,因为我有所有常用的函数名称keywords.txt

相关内容