我正在尝试让 vim 执行我正在使用键映射编辑的脚本,例如ctrl+ x,所以我在vimrc
:map <C-x> :!exec_file %<CR>
要将文件名传递给我编写的脚本,该脚本解析扩展名并调用适当的解释器,到目前为止效果很好。
但是,我想知道是否可以bash使用脚本名称直接调用并执行它,因为我编辑的大多数脚本都有一个 shebang 行,所以我尝试了这个映射:
:map <C-x> :!bash %<CR>
但它不起作用,是否可以通过将其名称传递给 bash 来执行脚本?
Vim 已经使用 shell(参见:set shell?)来执行外部命令;带有shebang行的脚本应该可以正常工作。执行当前缓冲区的规范方式是
:!./%
Run Code Online (Sandbox Code Playgroud)
(预谋./,以应对当前的目录不是的一部分PATH。这是假定该脚本已经是可执行文件(:!chmod +x %在映射/文件类型插件可能完成的。)
您可以仅使用:!!. 此外,还有更好的解决方案用于在外部解释器中执行(部分、未保存等)缓冲区内容;检查vim.org的插件部分。
| 归档时间: |
|
| 查看次数: |
7260 次 |
| 最近记录: |