Answers:
如果数据库在每个vim实例外部,则Vim可以使用相同的完成数据库。
例如,如果您使用ctags
完成或youcompleteme
使用外部进程或文件的任何其他插件,则完成将在某种程度上“共享” 。
单词补全对您不是很有用,因为它将仅使用同一文件中的单词:C-N
/C-P
但是omni
,ctags
完成将使用ctags
数据库(应exuberant ctags
事先构建),并将在所有实例之间共享。
键入C-X C-O
用于完成全部操作,C-X C-]
用于完成ctags。
在:help i_ctrl-n
它表明Vim使用complete
选项来完成的话。上面的帮助complete
继续显示,使用非Vim实例本地内容的唯一实际选择是使用字典文件。然后问题归结为使用所有vim实例生成这样的字典文件。您可以通过不时解析所有打开的文件来做到这一点。我不知道这会对性能产生影响。
另一种选择是使用完全不同的机制(ctags等),但这可能会破坏其他功能,因为这些并不是真正用于简单自动完成的。
总的来说,您还可以对工作流程进行一些更改,以更加遵循Vim的使用方式。这将意味着使用一个或几个窗口同时查看内容并经常切换缓冲区。ctrlP是一个很好地完成切换功能的插件。通过按下按钮将其激活后,它可以使您在不同位置模糊搜索文件,从而可以快速切换。只要您记住文件名即是。