5

Python 支持集成在最新版本的 emacs 中。例如C-c C-z,为我提供了一个解释器并C-c C-c自动解释我正在处理的文件,而无需移动到另一个缓冲区。(虽然emacs的方法有一些缺点)

这可以在 vim 中实现,还是像在 emacs 中那样简单,只需两次击键?我知道我可以用 来评估一个表达式:python,但这并不是我想要的。

4

3 回答 3

11

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

于 2013-01-25T18:25:43.160 回答
0

为了使用击键,请参阅vim 中的映射键

于 2013-01-25T18:19:56.830 回答
0

是的,我花了一些时间扩展 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 实例。

于 2013-01-25T20:02:14.970 回答