【问题标题】:Vim Completion Based on Buffer Name基于缓冲区名称的 Vim 完成
【发布时间】:2012-11-04 14:20:38
【问题描述】:

在 Vim 中,我经常发现自己想要完成我正在单独缓冲区中编辑的文件的文件名。

假设我打开了两个缓冲区:foo.cpp 和 bar.h。在 foo.cpp 我需要#include "bar.h"。我想做这样的事情:

foo.cpp

#include "b<complete filename to bar.h>

根据 Vim 文档,我可以使用 CTRL+x CTRL+f 来完成文件名,但这似乎依赖于 Vim 具有与 bar.h 的父目录等效的 CWD。这并不总是可能的。

鉴于我在单独的缓冲区中打开了 bar.h,是否可以根据缓冲区名称自动完成?

【问题讨论】:

    标签: vim autocomplete


    【解决方案1】:

    好主意;将候选者限制在加载的缓冲区中会减少候选者列表,并且还允许匹配文件路径中的任何位置。

    为此,必须实现自定义插入模式完成。可以通过在从 1bufnr('$') 的所有缓冲区编号上迭代 bufname() 来检索文件名。我刚刚将其实现为BufNameComplete plugin。我希望这能满足您(和我的)的需求。

    【讨论】:

    • 这很好用!我已经安装了插件,现在正在使用它。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    相关资源
    最近更新 更多