Vim插件跨多个打开的缓冲区自动完成

Vim插件跨多个打开的缓冲区自动完成,vim,autocomplete,vim-plugin,Vim,Autocomplete,Vim Plugin,是否有跨多个文件自动完成的vim插件 例如: 打开的文件是a.txt和b.txt 使用vim编辑b.txt时,我希望能够从a.txt和b.txt接收自动完成结果 我已经使用了youCompleteMe插件,但是对于该语言中的方法,它只在一个文件中完成 有什么建议吗?Vim的内置完成功能已支持此功能。不需要插件 您可以通过以下测试看到: 创建一个包含以下内容的文件非常基本的vimrc: 设置不兼容 文件类型插件缩进 语法启用 运行vim-u非常基本的vimrc。这将使用该文件作为vimrc启

是否有跨多个文件自动完成的vim插件

例如:

  • 打开的文件是
    a.txt
    b.txt
  • 使用
    vim
    编辑
    b.txt
    时,我希望能够从
    a.txt
    b.txt
    接收自动完成结果
我已经使用了
youCompleteMe
插件,但是对于该语言中的方法,它只在一个文件中完成


有什么建议吗?

Vim的内置完成功能已支持此功能。不需要插件

您可以通过以下测试看到:

  • 创建一个包含以下内容的文件
    非常基本的vimrc

    设置不兼容
    文件类型插件缩进
    语法启用
    
  • 运行
    vim-u非常基本的vimrc
    。这将使用该文件作为
    vimrc
    启动Vim,因此您可以在没有任何插件的情况下测试Vim的工作方式

  • 在空缓冲区中,键入文本“一二三”

  • 运行
    :new
    打开另一个缓冲区,然后键入“四五六”

  • 使用Ctrl-W切换回第一个缓冲区,然后使用
    o
    打开新行

  • 键入“fi”并按Ctrl-N。这将触发下一个自动完成匹配–请参阅。“五”将成功完成,即使单词“五”位于不同的缓冲区中

  • 如果此功能不适用于您的正常vimrc,则您安装的插件(如)可能会干扰该行为。更改该插件的设置或禁用它

    我个人使用。使用Supertab,我可以成功地键入Tab以从其他缓冲区完成一个单词。其他流行的完成插件可能也支持该功能


    我看到YouCompleteMe声称提供完成,甚至不需要键入Tab。如果来自其他缓冲区的补全没有显示在自动触发的列表中,那么YouCompleteMe可能是故意这样做的,这样正常的键入速度就不会太慢。您必须在YCM的文档中查找启用它的选项,或扩展完成列表以包括来自其他缓冲区的完成的映射。如果两者都不存在,您可以创建一个问题,请求打开。

    如果您需要代码完成,比如说
    C++
    ,YCM是一个不错的选择,但您需要将其配置为执行您想要的操作。不确定是否可以使用平庸的
    .txt
    文件…但这是跨缓冲区的,而不是跨文件的…:/