我写了很多shell脚本,我经常不得不输入文件路径。我想知道是否有人知道一种方法,让Vim在插入模式下自动完成文件路径,就像当你在你最喜欢的shell中时,你用Tab键完成目录或文件的路径。如果您能将shell的CTRLD功能导入Vim插入模式(即查看当前路径中有哪些文件/目录),则可获得额外加分。
uqjltbpv1#
对于文件名omni补全,可以用途:Ctrl-XCtrl-F组合键
c90pui9n2#
这里有ctrl-xctrl-f:he compl-filename
:he compl-filename
nr7wwzry3#
在@CMS和@michael的基础上构建出色的答案当使用ctrl+Xctrl+f命令序列时,它会显示当前目录中的文件列表。我花了一分钟寻找正确的键在不同的文件名之间上下移动。正确的键是Ctrl-n和Ctrl-p。你可以使用几乎任何其他键(如空格键)来选择并继续键入。此外,如果您尚未到达要插入的文件/目录,则可以按如下所示向下进入文件树结构:1.选择性地输入目录的某个部分。例如,您甚至可以使用../../!1.按ctrl+Xctrl+f并从列表中选择树中的第一个项目。1.然后,在正确的项目高亮显示时再次按ctrl+f,以显示目录树结构中下一级的列表。您可以继续执行此操作,直到找到要插入到文档中的目录/文件。
../../
nnsrf1az4#
我遇到过类似的问题。我找到了解决方案,如:
sudo apt-get install realpath
在VIM中,导航到正常模式下类型为:
:r !realpath /path/to/file
当您在!realpatch之后以非插入模式导航时,您可以使用我们的按键按钮。瞧!TAB又工作了!
z3yyvxxp5#
编辑:对不起,我降落在这里从谷歌的结果为“vim插入文件绝对路径”(首先用Esc或Ctrl+C离开插入模式);)从正常模式,在空白行上!!readlink -f #这将运行一个命令,并用当前文件名替换#,readlink将解析规范名称,!!将在光标所在的位置写入输出请注意,这需要在空白行上完成,因为该行的内容将作为stdin提供给子命令。
!!readlink -f #
#
readlink
!!
5条答案
按热度按时间uqjltbpv1#
对于文件名omni补全,可以用途:
Ctrl-XCtrl-F组合键
c90pui9n2#
这里有ctrl-xctrl-f
:he compl-filename
nr7wwzry3#
在@CMS和@michael的基础上构建出色的答案
当使用ctrl+Xctrl+f命令序列时,它会显示当前目录中的文件列表。我花了一分钟寻找正确的键在不同的文件名之间上下移动。正确的键是Ctrl-n和Ctrl-p。你可以使用几乎任何其他键(如空格键)来选择并继续键入。
此外,如果您尚未到达要插入的文件/目录,则可以按如下所示向下进入文件树结构:
1.选择性地输入目录的某个部分。例如,您甚至可以使用
../../
!1.按ctrl+Xctrl+f并从列表中选择树中的第一个项目。
1.然后,在正确的项目高亮显示时再次按ctrl+f,以显示目录树结构中下一级的列表。
您可以继续执行此操作,直到找到要插入到文档中的目录/文件。
nnsrf1az4#
我遇到过类似的问题。我找到了解决方案,如:
在VIM中,导航到正常模式下类型为:
当您在!realpatch之后以非插入模式导航时,您可以使用我们的按键按钮。
瞧!TAB又工作了!
z3yyvxxp5#
编辑:对不起,我降落在这里从谷歌的结果为“vim插入文件绝对路径”
(首先用Esc或Ctrl+C离开插入模式);)
从正常模式,在空白行上
!!readlink -f #
这将运行一个命令,并用当前文件名替换
#
,readlink
将解析规范名称,!!
将在光标所在的位置写入输出请注意,这需要在空白行上完成,因为该行的内容将作为stdin提供给子命令。