7

我正在尝试使用 vim 的compl-filename功能 ( Ctrl-XCtrl-F) 在INSERT模式下完成路径,但我无法弄清楚如何在不(暂时)结束完成模式的情况下遍历目录:

假设我想完成路径/etc/sysconfig/network-scripts/ifup

我希望能够做类似的事情:

/eCtrl-XCtrl-F
/e tc/ 
/etc/ sysCtrl-F
/etc/sys config/ 
/etc/sysconfig/ netCtrl-F
/etc/sysconfig/net控制台Ctrl-N
/etc/sysconfig/net workCtrl-N 
/etc/sysconfig/net work-scripts/ 
/etc/sysconfig/network-scripts /ifupCtrl-Y
/etc/sysconfig/network-scripts/ifup

问题是,一旦我在路径匹配(如/etc/)后开始输入*,它就会结束文件名完成。我希望它保留在文件名完成中,这样我仍然可以使用Ctrl-F,Ctrl-N等。由于它结束了完成,我必须Ctrl-XCtrl-F再次键入才能重新启动它,同时有用的完成弹出菜单消失了。

我可以设置一个选项来改变它吗?

*这里的“输入”指的是字符'isfname'——当然,输入其他字符(如空格或标点符号)不应继续完成文件名。

4

4 回答 4

5

我不确定您在说什么,但是您可以Ctrl-XCtrl-F在完成菜单中再次按目录以展开它。您不必先关闭菜单。我只是Ctrl按住并点击xf以遍历目录,n上下p移动并w返回。

如果你不使用:h i_CTRL-F,那么你可以重新映射它。例如,

inoremap <C-f> <C-x><C-f>
于 2012-11-11T00:28:54.647 回答
2

简单的重新映射将是

inoremap / /<C-x><C-f>

因此,当您在插入模式下键入斜杠(/)时,您将获得自动完成弹出窗口:)

将它放在你的 .vimrc 文件(对于 vim)或 init.vim(对于 neovim)

于 2021-08-21T08:09:47.917 回答
0

Vim 不做自动补全。

为此,您需要像AutoComplPopNeoComplCache这样的专用插件

于 2012-11-11T08:35:56.710 回答
0

请在使用 cntr+x+f 之前先插入“i”。我也有类似的情况。:)

于 2016-12-29T12:04:55.583 回答