Vim:执行当前文件?

2fjabf4q  于 2023-06-23  发布在  其他
关注(0)|答案(7)|浏览(131)

如果我有一个包含shebang行的文件(例如#!/bin/bash)在Vim中打开,并且文件具有执行权限(即chmod +x)我知道我可以在不离开编辑器的情况下输入以下内容来执行它:

:! %:p
  • :用于命令模式
  • !运行shell命令
  • %引用当前缓冲区中的文件
  • :p使用当前文件的完整路径

对于这种频繁的任务,有没有更短的捷径?
例如,存在:wqZZ快捷方式等。

wbrvyc0a

wbrvyc0a1#

:!%:p

,没有空格,则更短。
如果你想要一个更短的快捷方式,你可以创建一个自定义Map:

nnoremap <F9> :!%:p

或者更“助记符”:

nnoremap <leader>r :!%:p
qyyhg6bp

qyyhg6bp2#

如果您还没有设置权限,则可以运行:

:! sh %
o3imoua4

o3imoua43#

如果您的文件名/目录路径中有空格,前面的答案都不起作用。简单的解决办法。

:!"%:p"
4uqofj5v

4uqofj5v4#

在你执行了一次之后,一个短的:!!将重复它。

xwmevbvl

xwmevbvl5#

启动vi时,显式指定文件路径,如“vi ./blablabla”

vi ./yourscript.pl

然后从!%开始
另一个变体是调用vi命令,如下所示

!./%
mqxuamgl

mqxuamgl6#

您可以向.vimrc添加键Map

map <F5> :!%
xu3bshqb

xu3bshqb7#

为了在vim中执行当前文件,如果文件名中有空格

:!./"%"

相关问题