不使用 shebang 执行 Vim 中的当前文件
Execute current file in Vim without shebang
如果有 python 扩展名,是否有一个干净的别名可以放入我的 vimrc 中 运行 使用 python 当前文件?
目前我有 nnoremap <leader>r :!%:p<Enter>
,如 this 问题中所建议的(当我点击 \+r 时,它 运行 是打开的文件)。它适用于 bash 文件,其中约定是添加一个 shebang 行并使文件可执行,但对于 python 文件,它显然退出 1.
作为解决方法,我添加了一个新命令 - command PyBang :call append(0, "#!/usr/bin/env python")
- 将 python shebang 添加到文件顶部。问题是这并不是 .py 文件的真正约定,并且出于某种原因使它们全部可执行似乎需要付出很多努力。
所以我正在努力编写一个别名,如果没有扩展名,它将 运行 :!%:p<Enter>
并在文件上有 .py
扩展名的情况下添加 python
在缓冲区中。
非常感谢任何想法。
最简单的方法是在 运行 shell 命令中使用 vim 的感叹号。例如,
: ! python3 %
将 运行 当前文件 %
,python3
在 vim 之外,无论您在 shell 中。
您可以将其与 vim 脚本结合使用,为此命令创建您自己的快捷方式。
要将其与您当前的 bash
函数结合使用,您需要在 vim 函数中使用条件逻辑来检测文件类型(请参阅 here and here 了解如何使用文件类型及其检测)
如果有 python 扩展名,是否有一个干净的别名可以放入我的 vimrc 中 运行 使用 python 当前文件?
目前我有 nnoremap <leader>r :!%:p<Enter>
,如 this 问题中所建议的(当我点击 \+r 时,它 运行 是打开的文件)。它适用于 bash 文件,其中约定是添加一个 shebang 行并使文件可执行,但对于 python 文件,它显然退出 1.
作为解决方法,我添加了一个新命令 - command PyBang :call append(0, "#!/usr/bin/env python")
- 将 python shebang 添加到文件顶部。问题是这并不是 .py 文件的真正约定,并且出于某种原因使它们全部可执行似乎需要付出很多努力。
所以我正在努力编写一个别名,如果没有扩展名,它将 运行 :!%:p<Enter>
并在文件上有 .py
扩展名的情况下添加 python
在缓冲区中。
非常感谢任何想法。
最简单的方法是在 运行 shell 命令中使用 vim 的感叹号。例如,
: ! python3 %
将 运行 当前文件 %
,python3
在 vim 之外,无论您在 shell 中。
您可以将其与 vim 脚本结合使用,为此命令创建您自己的快捷方式。
要将其与您当前的 bash
函数结合使用,您需要在 vim 函数中使用条件逻辑来检测文件类型(请参阅 here and here 了解如何使用文件类型及其检测)