为Python设置Vim

Dob*_*boy 59 python vim configuration editor indentation

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

def foo():
    if bar:
         blah
         [b]eep
Run Code Online (Sandbox Code Playgroud)

然后我按下光标上的标签(位于哔哔声b上),它不会插入新的标签,导致语法错误,但它会切换可能发出哔哔声的电平.反正有没有对Vim产生这种影响?

mva*_*een 92

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

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

入门

杰纳斯

对于初学者,我强烈建议安装现成的Janus插件(fwiw,这个名字来自于由Janus Vim主演的星际迷航剧集).如果你想要一个快速的vim IDE快捷方式,这是你最好的收获.

我从来没有用过太多,但我见过其他人愉快地使用它,我现在的设置是从旧的Janus构建中大量借用的.

Vim病原体

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

它是各种各样的包管理器.安装后,您可以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
Run Code Online (Sandbox Code Playgroud)

有用的网址

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

  • 第一个链接是*事实上的"Vim as Python IDE"指南和迄今为止我见过的最好的链接. (8认同)
  • 对于那些寻找第一个链接的人:https://web.archive.org/web/20151210012212/http://www.sontek.net/blog/2011/05/07/turning_vim_into_a_modern_python_ide.html (2认同)

小智 26

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

我按照这个方法推荐了Vundle over Pathogen.使用一天后,我发现安装插件很简单.

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轻松找到它们.


Kim*_*ais 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
Run Code Online (Sandbox Code Playgroud)

另请参阅详细说明

我个人使用JetBrain的PyCharmIdeaVIM插件做任何复杂的事情,简单编辑添加.vimrc似乎就足够了.