【发布时间】:2021-06-29 11:32:36
【问题描述】:
是否有一个干净的别名可以放入我的 vimrc 中,如果有 python 扩展,它将使用 python 运行当前文件?
目前我有nnoremap <leader>r :!%:p<Enter> 问题中所建议的nnoremap <leader>r :!%:p<Enter>(当我点击 \+r 时,它会运行打开的文件)。它适用于 bash 文件,其中约定是添加一个 shebang 行并使文件可执行,但对于 python 文件,它显然退出 1。
作为一种解决方法,我添加了一个新命令 - command PyBang :call append(0, "#!/usr/bin/env python") - 在文件顶部添加一个 python shebang。问题是这并不是 .py 文件的真正约定,并且出于某种原因,使它们全部可执行似乎需要付出很多努力。
所以我正在努力编写一个别名,如果没有扩展名,它将运行 :!%:p<Enter>,如果缓冲区中的文件有 .py 扩展名,则在前面加上 python。
非常感谢任何想法。
【问题讨论】:
-
有什么原因你不能创建一个 vim 命令来运行 python 程序?
:! python3 %例如。或者您的问题是关于如何检测您的文件是什么文件类型,然后选择运行什么? -
我基本上想要一个“运行”命令,因此我不必记住每种语言使用哪个命令来处理我正在处理的文件。但是,您的解决方案是我目前正在使用的解决方案,因此感谢您!因为它比破坏一切更容易
-
使用this 之类的东西来帮助您使
if else语句正常工作。所以你可以有“if bash, do this; if python do this;” -
@wxz 这正是我想要的。看了之后我可能找到了答案here
-
@wxz,请随时将其作为答案,我会很乐意接受。我现在正在使用
autocmd filetype python nnoremap <leader>r :!python %:p<Enter>,它似乎正在工作,但仍需要测试。干杯