92

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

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

这个频繁的任务有没有更短的捷径?

例如,有一个ZZ快捷方式:wq,等等。

4

6 回答 6

86
:!%:p

,没有空格,更短。

如果您想要更短的快捷方式,可以创建自定义映射:

nnoremap <F9> :!%:p

或更“助记符”:

nnoremap <leader>r :!%:p
于 2013-03-16T13:09:18.717 回答
21

如果您尚未设置权限,则可以运行:

:! sh %
于 2014-02-24T17:12:52.317 回答
18

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

:!"%:p"
于 2017-09-21T15:39:51.920 回答
12

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

于 2013-03-16T16:05:48.740 回答
6

启动 vi 时,明确指定文件路径,例如“vi ./blablabla”

vi ./yourscript.pl

然后开始!%

另一个变体是像这样调用 vi 命令

!./%
于 2019-02-15T16:32:55.287 回答
3

您可以将键映射添加到 .vimrc

map <F5> :!%
于 2013-03-16T13:10:03.140 回答