vim 作为 Python IDE
在最新版本的emacs中,已经集成了对Python的支持。例如,按下 C-c C-z
可以打开一个解释器,而 C-c C-c
则可以自动解释我正在编辑的文件,而不需要切换到其他窗口。(不过,emacs的方法也有一些缺点)
那么在vim中,这种操作可能吗?或者说,能不能像在emacs中那样,只用两个按键就能完成?我知道可以用 :python
来执行一个表达式,但这并不是我想要的效果。
3 个回答
想要使用快捷键,可以查看这个链接:在Vim中设置快捷键的教程。
是的,我花了一些时间来扩展Vim,让它可以做到这一点。我大部分的尝试都放在了一个版本库里。你可以查看这个vim树。
Vim还可以编译成带有嵌入式Python解释器的版本,这样你就可以在编辑的文本中执行代码,或者用Python添加新功能。想了解更多,可以试试输入:help python
。
我使用的是X Windows,所以大部分功能在这个环境下都能正常工作。我从Vim中调用一个shell包装器,代码看起来是这样的:
1 $ cat bin/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实例来执行你的代码。
要在Python中执行当前文件,你可以使用命令 :!python %
。你可以通过编辑你的vimrc文件来把这个命令绑定到一个快捷键上。例如,添加 nnoremap \ll :!python %<cr>
到你的vimrc中,这样在普通模式下输入 \ll
就会执行当前的Python文件。(*更多细节请看脚注)
vim-ipython插件可以让你在vim中打开一个ipython窗口。你可能还会对tmux感兴趣,它可以让你的终端分成两个部分,垂直显示(这样你就可以同时运行一个shell和vim)。
有很多插件可以把vim变成一个非常好的Python开发环境。我特别喜欢“pyflakes”这个插件,它可以自动高亮显示语法错误。
这篇博客文章详细介绍了用于Python的vim插件:
http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide
(*) 另外,你可能想让这个命令只适用于Python文件(在Python解释器中执行C++源代码其实没什么意义)。你可以通过把它放在你的 .vim/ftplugin
目录下的特定 python.vim
文件中来实现,或者在你的 .vimrc 中写
autocmd FileType python nnoremap \ll :!python %<cr>
这样,你就可以为不同类型的文件重新绑定 \ll
快捷键到不同的操作。
再说一句,如果你只想执行当前文件的一部分,可以在可视模式下(按SHIFT+v)选择相关行,然后输入 :!python %
命令。选中的行会被传送到Python解释器中执行!