Python 支持集成在最新版本的 emacs 中。例如C-c C-z
,为我提供了一个解释器并C-c C-c
自动解释我正在处理的文件,而无需移动到另一个缓冲区。(虽然emacs的方法有一些缺点)
这可以在 vim 中实现,还是像在 emacs 中那样简单,只需两次击键?我知道我可以用 来评估一个表达式:python
,但这并不是我想要的。
要在 python 中执行当前文件,可以使用命令:!python %
. 您可以通过编辑 vimrc 将其绑定到键盘快捷键。例如,当你在普通模式下nnoremap \ll :!python %<cr>
键入时,添加到你的 vimrc 将在 python 中执行当前文件。\ll
(* 更多细节见脚注)。
vim-ipython 插件可以让你在 vim 中打开一个 ipython 窗口。您可能还对 tmux 感兴趣,它允许您将终端垂直分成两部分(这样您就可以让 shell 和 vim 并行运行)。
有很多插件可以将 vim 变成一个非常好的 python IDE。“pyflakes”,它会自动突出语法错误,是我特别喜欢的。
这篇博文广泛描述了适用于 python 的 vim 插件:
http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide
(*) 顺便说一句,您可能希望使此命令特定于 python 文件(在 python 解释器中执行 C++ 源代码实际上没有意义)。这可以通过将其放在目录中的特定python.vim
文件中来完成.vim/ftplugin
,或者通过编写
autocmd FileType python nnoremap \ll :!python %<cr>
在你的 .vimrc 中。这样,您可以将\ll
键盘快捷键重新绑定到不同类型文件的不同操作。
另外,如果您只想执行当前文件的一部分,请在可视模式 (SHIFT+v) 中选择相关行并键入:!python %
命令。选定的行将通过管道传送到 python 解释器!
为了使用击键,请参阅vim 中的映射键。
是的,我花了一些时间扩展 Vim 来做到这一点。我的大部分尝试都可以在 subversion 存储库中使用。查看vim 树。
Vim 也可以使用嵌入式 Python 解释器进行编译,您可以使用它来评估缓冲区中的代码行,或使用 Python 添加新功能。试试看:help python
详情。
我使用 X Windows,所以大部分都在那个环境中工作,并从 Vim 调用一个 shell 包装器,如下所示:
1 $ 猫箱/xpython
#!/bin/sh
if [ $# -gt 0 ] ; then
urxvt -title Python2 -name Python -e python -i "$@"
else
urxvt -title Python2 -name Python -e bpython
fi
因此,您可以从 Gvim 运行 xpython 而不仅仅是 python,映射到一个键(参见源代码)。这将打开一个新的终端窗口,其中包含一个运行您的代码的新 Python 实例。