我经常写许多shell脚本,需要经常输入文件路径。我想知道有没有任何方法可以让Vim在插入模式下自动完成文件路径,就像当您在您喜爱的Shell中时,按Tab键即可完成目录或文件路径。
如果能够将Shell的CTRLD功能用于Vim插入模式(即查看当前路径中的文件/目录),则更加优秀。
我经常写许多shell脚本,需要经常输入文件路径。我想知道有没有任何方法可以让Vim在插入模式下自动完成文件路径,就像当您在您喜爱的Shell中时,按Tab键即可完成目录或文件路径。
如果能够将Shell的CTRLD功能用于Vim插入模式(即查看当前路径中的文件/目录),则更加优秀。
文件名omni补全,可以使用:
Ctrl-XCtrl-F
按下 ctrl-x 之后再按下 ctrl-f
:he compl-filename
在@CMS和@michael的优秀回答基础上:
当使用ctrl+X ctrl+f命令序列时,它会显示当前目录中的文件列表。我花了一分钟的时间寻找在不同文件名之间上下移动的正确按键。正确的按键是Ctrl-n和Ctrl-p。您可以使用几乎任何其他按键(如Space)选择并继续输入。
此外,如果您还没有到达要插入的文件/目录,则可以按以下方式进入文件树结构:
../../
等!您可以一直这样做,直到找到要在文档中插入的目录/文件。
我遇到了类似的问题。我找到了解决方案,如下:
sudo apt-get install realpath
在VIM中,以正常模式输入以下内容来导航到文件:
:r !realpath /path/to/file
编辑:抱歉,我通过谷歌搜索“vim插入文件绝对路径”来到这里。
(首先使用 esc 或 ctrl+c 离开插入模式);)
从正常模式开始,在空白行上:
!!readlink -f #
这将运行一个命令,并用当前文件名替换
#
,readlink
将解析出规范名称,!!
将在光标所在处写入输出。请注意,这需在空白行上完成,因为该行内容将作为标准输入传递给子命令。