在插入模式(CTRL-X CTRL-F)中使用VIM文件名完成的遍历目录



我正在尝试使用vim的 compl-filename功能( ctrl-x ctrl-f INSERT模式下完成路径,但是如果没有(暂时)结束完成模式,我无法弄清楚如何穿越目录:

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

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

      /
       e 
       ctrl-x 
      
         ctrl-f e  tc//etc/ s  y  s  ctrl-f etc/sys  config//etc/sysconfig/ n  e  t  ctrl-f etc/sysconfig/net  console  ctrl-n /etc/sysconfig/net 工作 ctrl-n /etc/sysconfig/net 工作 - 脚本//etc/sysconfig/network-scripts/ i  f  u  p  ctrl-y /etc/sysconfig/network-scripts/ifup
    

问题是,一旦我在路径匹配之后开始键入*(例如/etc/),它就会结束文件名的完成。我希望它保持在文件名完成中,以便我仍然可以使用 ctrl-f ctrl-n 等。 ctrl-x ctrl-f 再次重新启动它,并且有用的完成弹出菜单在此期间消失。

我是否可以设置一个选项来更改此?

*通过'键入',我指的是'isfname'中的字符 - 当然,键入其他字符(例如空间或标点符号)不应继续文件名完成。

<</p>

我不确定您的意思是什么,但是您只需按 ctrl-x ctrl-f 再次上在完成菜单以扩展其时,目录是一个目录。您不必先关闭菜单。我只是保留 ctrl 固定并点击xf以遍历目录, np以上和向下移动,然后 w返回。

>

如果您不使用:h i_CTRL-F,则可以重新启动。例如,

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

简单的重新映射将为

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

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

将其放在.vimrc文件(for vim)或init.vim(for neovim)

vim不做 auto -completion。

为此,您需要一个专用插件,例如AutoComplepop或neocomplecache

请先在使用cntr x f之前使用插入" i"。我处在类似的情况下。:)

最新更新