Vim:执行当前文件?

时间:2013-03-16 13:00:07

标签: vim

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

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

这个频繁的任务是否有更短的快捷方式?

e.g。 ZZ等有:wq个快捷方式。

6 个答案:

答案 0 :(得分:54)

:!%:p

,没有空格,更短。

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

nnoremap <F9> :!%:p

或更多“助记符”:

nnoremap <leader>r :!%:p

答案 1 :(得分:11)

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

:! sh %

答案 2 :(得分:9)

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

:!"%:p"

答案 3 :(得分:7)

执行完一次后,短:!!将重复此操作。

答案 4 :(得分:1)

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

map <F5> :!%

答案 5 :(得分:0)

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

vi ./yourscript.pl

此后,您随时可以只使用:!%

另一种方法是像这样调用vi命令

!./%