Vim 跨多个打开的缓冲区自动完成的插件
Vim plugin to auto complete across multiple open buffers
是否有 vim 跨多个文件自动完成的插件?
示例:
- 打开的文件是
a.txt
和 b.txt
。
- 在使用
vim
编辑 b.txt
时,我希望能够从 a.txt
和 b.txt
接收自动完成结果
我已经使用了 youCompleteMe
插件,但它只能在一个文件中完成来自该语言的方法。
有什么建议吗?
Vim的内置完成和Ctrl-N in Insert Mode已经支持这个。不需要插件。
你可以通过以下测试看到:
创建文件very-basic-vimrc
,内容如下:
set nocompatible
filetype plugin indent on
syntax enable
运行vim -u very-basic-vimrc
。这将启动 Vim 使用该文件作为您的 vimrc
,因此您可以测试 Vim 在没有任何插件的情况下如何工作。
在空缓冲区中,输入文本“一二三”。
运行 :new
打开另一个缓冲区,输入“四五六”。
用Ctrl-W切换回第一个缓冲区W, 然后用 o
.
换行
键入“fi”并按Ctrl-N。这将触发下一个自动完成匹配——参见 Vim’s documentation for i_CTRL-N
。 “五”将成功完成,即使“五”这个词在不同的缓冲区中。
如果此功能不适用于您的普通 vimrc,则您安装的某个插件(例如 YouCompleteMe 可能会干扰该行为。更改该插件的设置或禁用它。
我个人使用Supertab。使用 Supertab,我可以成功地键入 Tab 来完成来自不同缓冲区的单词。其他流行的完成插件可能也支持该功能。
我看到 YouCompleteMe 声称无需键入 Tab 即可完成。如果来自其他缓冲区的完成没有出现在那个自动触发的列表中,YouCompleteMe 可能是故意这样做的,这样正常的打字就不会减慢太多。您必须在 YCM 的文档中查找启用它的选项,或扩展完成列表以包括来自其他缓冲区的完成的映射。如果两者都不存在,您可以在 YouCompleteMe’s issue tracker.
上创建一个问题请求
是否有 vim 跨多个文件自动完成的插件?
示例:
- 打开的文件是
a.txt
和b.txt
。 - 在使用
vim
编辑b.txt
时,我希望能够从a.txt
和b.txt
接收自动完成结果
我已经使用了 youCompleteMe
插件,但它只能在一个文件中完成来自该语言的方法。
有什么建议吗?
Vim的内置完成和Ctrl-N in Insert Mode已经支持这个。不需要插件。
你可以通过以下测试看到:
创建文件
very-basic-vimrc
,内容如下:set nocompatible filetype plugin indent on syntax enable
运行
vim -u very-basic-vimrc
。这将启动 Vim 使用该文件作为您的vimrc
,因此您可以测试 Vim 在没有任何插件的情况下如何工作。在空缓冲区中,输入文本“一二三”。
运行
:new
打开另一个缓冲区,输入“四五六”。用Ctrl-W切换回第一个缓冲区W, 然后用
o
. 换行
键入“fi”并按Ctrl-N。这将触发下一个自动完成匹配——参见 Vim’s documentation for
i_CTRL-N
。 “五”将成功完成,即使“五”这个词在不同的缓冲区中。
如果此功能不适用于您的普通 vimrc,则您安装的某个插件(例如 YouCompleteMe 可能会干扰该行为。更改该插件的设置或禁用它。
我个人使用Supertab。使用 Supertab,我可以成功地键入 Tab 来完成来自不同缓冲区的单词。其他流行的完成插件可能也支持该功能。
我看到 YouCompleteMe 声称无需键入 Tab 即可完成。如果来自其他缓冲区的完成没有出现在那个自动触发的列表中,YouCompleteMe 可能是故意这样做的,这样正常的打字就不会减慢太多。您必须在 YCM 的文档中查找启用它的选项,或扩展完成列表以包括来自其他缓冲区的完成的映射。如果两者都不存在,您可以在 YouCompleteMe’s issue tracker.
上创建一个问题请求