我正在尝试使用vim的compl-filename
功能( Ctrl-X Ctrl-F )来完成INSERT
模式下的路径,但是我不知道如何在没有(暂时)结束完成模式的情况下遍历目录:
假设我想完成路径/etc/sysconfig/network-scripts/ifup
。
我希望能够做到这样的事情:
/eCtrl-XCtrl-F /etc/ /etc/sysCtrl-F /etc/sysconfig/ /etc/sysconfig/netCtrl-F /etc/sysconfig/netconsoleCtrl-N /etc/sysconfig/networkCtrl-N /etc/sysconfig/network-scripts/ /etc/sysconfig/network-scripts/ifupCtrl-Y /etc/sysconfig/network-scripts/ifup
问题是,一旦我在路径匹配后开始输入*(如/etc/
),它就会结束文件名完成。我希望它保持文件名完成,这样我仍然可以使用 Ctrl-F , Ctrl-N 等等。由于它结束完成,我必须输入 Ctrl-X Ctrl-F 再次重新启动它,同时有用的完成弹出菜单消失。
我可以设置一个选项来改变它吗?
* 通过'输入'这里,我指的是'isfname'
中的字符 - 当然,输入其他字符(如空格或标点符号)不应该继续文件名完成。< / p>
答案 0 :(得分:5)
我不确定你在说什么,但你可以在你进入的目录上再次按 Ctrl-X Ctrl-F 完成菜单以扩展它。您不必先关闭菜单。我按住 Ctrl 按住xf
来遍历目录,n
和p
上下移动w
返回起来。
如果您不使用:h i_CTRL-F
,则可以重新映射它。例如,
inoremap <C-f> <C-x><C-f>
答案 1 :(得分:0)
Vim没有自动 - 完成。
为此,您需要一个专用的插件,例如AutoComplPop或NeoComplCache
答案 2 :(得分:0)
请使用insert&#34; i&#34;首先使用cntr + x + f。我情况类似。 :)