Vim:在分屏中执行我正在处理的脚本

Vim:在分屏中执行我正在处理的脚本

我正在编写一个小型 Python 脚本,该脚本需要频繁执行才能调试和进一步开发。

我可以分割 vim 屏幕并通过按键在一部分上执行我的脚本吗?

答案1

将此行添加到你的 .vimrc:

command R !./%

然后您只需在 Vim 中输入“:R”即可运行脚本(vim 运行当前文件

答案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 插件完全满足您的需求。包括键盘快捷键。

相关内容