我正在编写一个小型 Python 脚本,该脚本需要频繁执行才能调试和进一步开发。
我可以分割 vim 屏幕并通过按键在一部分上执行我的脚本吗?
答案1
答案2
Vim 不支持、也永远不会支持像 emacs 或 kate 这样的嵌入式 shell(如果你指的是这个的话),请参阅这个 stackoverflow 问题。
David Spillet 是对的,你可以在 gnu screen 中运行你的 vim:
$ screen vim foo.txt
但是,这只会给你提供一些类似于终端中的窗口管理器的东西 - 在通过 ssh 或在没有 X 的盒子上使用时非常有用,但在本地你也可以打开另一个 xterm 并在它们之间切换。*
无论如何,如果你可以接受在查看输出结果时看不到你正在编辑的文件的事实,那么 Jack M 的提示很好,但可以更短一些:
:map ;e :w<cr>:!python %<cr>
出于同样的目的,我在我的中有这个~/.vimrc
:
au BufEnter *
\if match( getline(1) , '^\#!') == 0 |
\ execute("let b:interpreter = getline(1)[2:]") |
\endif
fun! CallInterpreter()
if exists("b:interpreter")
exec ("!".b:interpreter." %")
endif
endfun
map <F5> :call CallInterpreter()<CR>
这将运行第一行包含 shebang ( #!
) 的任何文件。它使用解释器来运行文件,因此不需要具有执行权限。
*(screen 还有一些其他非常简洁的功能,比如从输出中复制和粘贴、监控隐藏窗口的活动/无活动、能够同时从不同的终端使用会话、能够注销而所有程序仍在运行 - 它是一个强大的工具)。
答案3
最不冗长的方式(需要你的脚本可执行)可能是:
:!%
答案4
这贝克赛克vim 插件完全满足您的需求。包括键盘快捷键。