vim 作为 Python IDE

5 投票
3 回答
2728 浏览
提问于 2025-04-17 13:41

在最新版本的emacs中,已经集成了对Python的支持。例如,按下 C-c C-z 可以打开一个解释器,而 C-c C-c 则可以自动解释我正在编辑的文件,而不需要切换到其他窗口。(不过,emacs的方法也有一些缺点)

那么在vim中,这种操作可能吗?或者说,能不能像在emacs中那样,只用两个按键就能完成?我知道可以用 :python 来执行一个表达式,但这并不是我想要的效果。

3 个回答

0

想要使用快捷键,可以查看这个链接:在Vim中设置快捷键的教程

0

是的,我花了一些时间来扩展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实例来执行你的代码。

11

要在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解释器中执行!

撰写回答