为Python设置Vim

时间:2012-02-07 08:02:58

标签: python vim configuration editor indentation

我非常喜欢Python的Emacs编辑器,因为如果我有这样的东西,它就是智能标签

def foo():
    if bar:
         blah
         [b]eep

然后我按下光标上的标签(位于哔哔声b上),它不会插入新的标签,导致语法错误,但它会切换到可能发出的哔声水平。无论如何都会对Vim产生这种影响吗?

8 个答案:

答案 0 :(得分:92)

一般来说,vim是一个非常强大的常规语言编辑器(宏扩展了这个,但我们暂时忽略它)。这是因为vim是ed上面的一个薄层,而ed只不过是一个说正则表达式的行编辑器。 Emacs的优势在于建立在ELisp之上;使它能够轻松解析复杂的语法并执行缩进技巧,就像你上面分享的那样。

说实话,我从来没有能够深入到emacs的深处,因为它只是在我的vim洞穴里冥想。话虽如此,让我们跳进来。

入门

詹纳斯

对于初学者,我强烈建议安装现成的Janus plugin(fwiw,这个名字来自以Janus Vim为主题的星际迷航剧集)。如果你想要一个快速的vim IDE快捷方式,这是你最好的帮助。

我从未使用过太多,但我见过其他人愉快地使用它,我目前的设置是从旧的Janus构建中大量借用。

Vim病原体

否则,自己做一些探索!如果你想看到vim插件的世界,我强烈建议安装vim pathogen

这是各种各样的包管理器。安装后,您可以git clone打包到~/.vim/bundle目录并自动安装。没有更多的插件安装,维护或卸载头痛!

您可以从GitHub页面运行以下脚本来安装病原体:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -so ~/.vim/autoload/pathogen.vim \
    https://raw.github.com/tpope/vim-pathogen/HEAD/autoload/pathogen.vim

有用的链接

以下是我发现和享受的扩展vim的一些链接:

答案 1 :(得分:26)

对于那些在2013年夏天左右到达的人,我相信这个帖子有些已经过时了。

我跟着this howto推荐了Vundle而不是病原体。使用一天后,我发现安装插件很简单。

klen / python-mode插件值得特别提及。它提供了pyflakes和pylint等功能。

我刚刚开始使用Valloric / YouCompleteMe,我喜欢它。它具有C-lang自动完成功能,并且由于jedi集成,python也非常有效。根据此讨论,它可能会取代jedi-vim / davidhalter / jedi-vim / issues / 119

最后浏览提供的/ carlhuda / janus插件是一个很好的指南,你可能不知道你正在寻找的有用的脚本,如NerdTree,vim-fugitive,syntastic,powerline,ack.vim,snipmate ......

以上所有'{} / {}'都可以在github上找到,您可以通过Google轻松找到它们。

答案 2 :(得分:15)

将以下内容放入.vimrc

autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
autocmd BufRead *.py set nocindent
autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
filetype plugin indent on

另请参阅detailed instructions

我个人在执行任何复杂操作时使用JetBrain的PyCharmIdeaVIM plugin,因为简单编辑.vimrc的添加内容就足够了。

答案 3 :(得分:3)

有一个用于Python开发的捆绑的Vim插件集合: http://www.vim.org/scripts/script.php?script_id=3770

答案 4 :(得分:2)

在Linux下,对我有用的是John Anderson的(sontek)指南,你可以找到at this link。但是,我作弊,只是从他的Git repostiory中使用了他简单的配置设置:

git clone -b vim https://github.com/sontek/dotfiles.git

cd dotfiles

./install.sh vim

截至今天,他的配置相当新。

答案 5 :(得分:1)

前段时间我安装了Valloric/YouCompleteMe,我发现它非常棒。它为您提供文件路径,函数名称,方法,变量名称的完成...与davidhalter/jedi-vim 一起使得vim非常适合python编程(现在唯一缺少的是linter)。

答案 6 :(得分:1)

Re:死了“将Vim变成现代Python IDE”链接,早在2013年我保存了一份副本,我转换为HTML页面和PDF副本:

http://persagen.com/files/misc/Turning_vim_into_a_modern_Python_IDE.html

http://persagen.com/files/misc/Turning_vim_into_a_modern_Python_IDE.pdf

修改(2017年9月8日)更新的网址。

答案 7 :(得分:0)

一个非常好的插件管理系统。包含的vimrc文件非常适合python编程,可以根据需要轻松配置。见http://spf13.com/project/spf13-vim/