如果我有一个带有shebang行(例如#!/bin/bash
)的文件,在Vim中打开并且该文件具有执行权限(即chmod +x
),我知道我可以在不离开编辑器的情况下键入以下内容来执行它:
:! %:p
:
用于命令模式!
用于运行shell命令%
引用当前缓冲区中的文件:p
使用当前文件的完整路径
是否有一个更短的快捷方式来完成这个经常需要的任务?
例如,:wq
有一个 ZZ
快捷方式。
如果我有一个带有shebang行(例如#!/bin/bash
)的文件,在Vim中打开并且该文件具有执行权限(即chmod +x
),我知道我可以在不离开编辑器的情况下键入以下内容来执行它:
:! %:p
:
用于命令模式!
用于运行shell命令%
引用当前缓冲区中的文件:p
使用当前文件的完整路径是否有一个更短的快捷方式来完成这个经常需要的任务?
例如,:wq
有一个 ZZ
快捷方式。
:!%:p
如果您想要更短的快捷方式,可以创建一个自定义映射:
没有空格,更短。
nnoremap <F9> :!%:p
或者更加易于记忆的:
nnoremap <leader>r :!%:p
如果你没有设置权限,你可以运行:
:! sh %
如果您的文件名/目录路径中包含空格,那么以前的答案都无法正常工作。简单修复。
:!"%:p"
执行一次该命令后,简短的:!!
将重复执行该命令。
在启动vi时,要明确指定文件路径,像这样“vi ./blablabla”
vi ./yourscript.pl
然后从!%
开始
另一种方法是这样调用vi命令
!./%
map <F5> :!%
:!./"%"
nnoremap <F9> :!%:p<Enter><Enter>
命令来跳过脚本执行后的按回车键或输入命令以继续
提示。 - usernnoremap <F9> :!%:p<Enter><Enter>
运行代码并立即返回到vim。使用单个Enternnoremap <F9> :!%:p<Enter>
以保留输出屏幕。 - askaleennoremap <F9> :!clear && %:p<Enter>
。 - roganartu:w
,我会得到E212错误。 - Unknow0059