基于缓冲区名称的Vim完成

时间:2012-11-15 21:43:43

标签: vim autocomplete

在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的CWD等同于bar.h的父目录。这并非总是可能。

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

1 个答案:

答案 0 :(得分:6)

好主意;将候选者限制为加载缓冲区在候选列表中排列,并允许在文件路径中的任何位置进行匹配。

要实现此目的,必须实现自定义插入模式完成。通过从bufname()1的所有缓冲区号码迭代bufnr('$'),可以检索文件名。我刚刚将其实现为BufNameComplete plugin。我希望这符合你的需求(和我的)。