在 Vim 插入模式下,有没有办法添加文件路径自动完成?
Posted
技术标签:
【中文标题】在 Vim 插入模式下,有没有办法添加文件路径自动完成?【英文标题】:When in Vim insert mode, is there a way to add filepath autocompletion? 【发布时间】:2010-12-27 12:43:37 【问题描述】:我编写了很多 shell 脚本,并且经常需要输入文件路径。我想知道是否有人知道在插入模式下让 Vim 自动完成文件路径的方法,就像当你在你最喜欢的 shell 中时,你可以通过 tab 来完成目录或文件的路径。
如果您可以将 shell 的 CTRLD 功能带入 Vim 插入模式(即查看当前路径中的文件/目录),则加分。
【问题讨论】:
有趣的问题,我也很想知道答案:) @stephenmm Ctrl-D 在你的 shell 中做什么?在我的 bash shell 中,当我输入一些文本时它什么也不做,否则关闭终端。 @alhelal - 似乎 CTRL-D 会在我的一些旧 shell 中显示文件和目录。我再也看不到任何 CTRL-D 功能了。 【参考方案1】:对于file name 全方位补全,可以使用:
Ctrl-XCtrl-F
【讨论】:
又一个 vim 啊哈时刻....谢谢。无论如何,我不在插入模式下使用制表符,所以将其添加到我的 .vimrc 中: imap有ctrl-x ctrl-f
:he compl-filename
【讨论】:
【参考方案3】:在 @CMS 和 @michael 的优秀答案的基础上构建
当使用 ctrl+X ctrl+f 命令序列时,它将显示文件列表当前目录。我花了一分钟寻找在不同文件名之间上下移动的正确键。正确的键是 Ctrl-n 和 Ctrl-p。您几乎可以使用任何其他键(如 Space)来选择并继续输入。
另外,如果你还没有在你想插入的文件/目录中,你可以往下走一个文件树结构如下:
-
(可选)输入目录的某些部分。例如,您甚至可以使用
../../
!
按 ctrl+X ctrl+f 并从列表中选择树中的第一项。
接下来再次按ctrl+f,同时突出显示正确的项目以显示目录树结构下一层的列表。
您可以继续这样做,直到找到要插入到文档中的目录/文件。
【讨论】:
第 3 步中的意思是 ctrl+x 和 ctrl+f 吗?因为只是 ctrl+f 对我不起作用,所以它和 ctrl+n 一样。顺便说一句,如果目录中有空格,它在这里不起作用:/。你知道解决方法吗? 请编辑此答案,因为步骤 3 中的不准确(这会导致一些混乱)。请根据上面的@Rojo 评论修改答案,否则会有帮助。【参考方案4】:我遇到了类似的问题。我找到了类似的解决方案:
sudo apt-get install realpath
并且在 VIM 中使用普通模式类型导航到文件:
:r !realpath /path/to/file
当您在 !realpatch 之后以非插入模式导航时,您可以使用我们的按键。
瞧! TAB 又开始工作了!
【讨论】:
以上是关于在 Vim 插入模式下,有没有办法添加文件路径自动完成?的主要内容,如果未能解决你的问题,请参考以下文章