Vim 执行当前文件?
如果我有一个在Vim中打开的带有shebang行(例如Vim 执行当前文件?,vim,Vim,如果我有一个在Vim中打开的带有shebang行(例如#!/bin/bash)的文件,并且该文件具有执行权限(即chmod+x),我知道我可以键入此命令来执行它,而无需离开编辑器: :! %:p :用于命令模式 以运行shell命令 %以引用当前缓冲区中的文件 :p使用当前文件的完整路径 对于这项频繁的任务,是否有较短的捷径 e、 g.对于:wq等,有一个ZZ快捷方式 :!%:p ,没有空格,则较短 如果需要更短的快捷方式,可以创建自定义映射: nnoremap <F9> :
#!/bin/bash
)的文件,并且该文件具有执行权限(即chmod+x
),我知道我可以键入此命令来执行它,而无需离开编辑器:
:! %:p
用于命令模式:
以运行shell命令
以引用当前缓冲区中的文件%
使用当前文件的完整路径:p
:wq
等,有一个ZZ
快捷方式
:!%:p
,没有空格,则较短
如果需要更短的快捷方式,可以创建自定义映射:
nnoremap <F9> :!%:p
nnoremap:!%:P
或者更“助记”:
nnoremap r:!%:P
您可以将密钥映射添加到.vimrc
map <F5> :!%
map:!%
执行一次后,一个简短的:代码>将重复此操作。如果您尚未设置权限,则可以运行:
:! sh %
如果文件名/目录路径中有空格,则前面的答案都无效。简单的修复
:!"%:p"
启动vi时,显式指定文件路径,如“vi./bla”
然后从!%代码>
另一个变体是像这样调用vi命令
!./%
使用nnoremap:!%:p以减轻每次按Enter键的负担。使用nnoremap:!%:p
要跳过也可在脚本执行后按ENTER键或键入command继续
nnoremap:!%:p
运行代码并立即返回vim。使用单输入nnoremap:!%:p
为了保持输出屏幕,我喜欢每次执行都有一个新的终端,这样我就不会将以前运行的输出与当前运行的输出混淆。为此,您可以使用nnoremap:!清除&&%:p
如何将保存文件并运行文件的操作映射到F9?如果我把:w
放在建议的序列之前,我得到E212。
vi ./yourscript.pl
!./%