在Vim中,我经常发现自己处于一种情况,我想在一个单独的缓冲区中完成我正在编辑的文件的文件名.
假设我打开了两个缓冲区:foo.cpp和bar.h. 在foo.cpp中我需要#include"bar.h".我想做这样的事情:
Foo.cpp中
#include "b<complete filename to bar.h>
Run Code Online (Sandbox Code Playgroud)
根据Vim文档,我能够使用CTRL + x CTRL + f来完成文件名,但这似乎依赖于Vim具有与bar.h的父目录相当的CWD.这并不总是可行的.
鉴于我在单独的缓冲区中打开了bar.h,是否可以根据缓冲区名称自动完成?
好主意; 限制候选者加载缓冲区在候选列表中排列,并允许在文件路径中的任何位置进行匹配.
为此,必须实现自定义插入模式完成.该文件名可以通过循环检索bufname()来自所有缓冲区号1来bufnr('$').我刚刚将其实现为BufNameComplete插件.我希望这符合你的需求(和我的).