gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:57:45 25 4
gpt4 key购买 nike

是否有一个 vim 插件可以跨多个文件自动完成?

例子:

  • 打开的文件是 a.txtb.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 .使用该文件作为您的 vimrc 启动 Vim ,因此您可以在没有任何插件的情况下测试 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 插件在多个打开的缓冲区中自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27884575/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com