为Python设置Vim

为Python设置Vim,python,vim,indentation,Python,Vim,Indentation,我真的很喜欢Python的Emacs编辑器,因为它的智能选项卡(例如,如果我有类似的东西的话) def foo(): if bar: blah [b]eep 我按下光标上的tab键(在beep的b键上),它不会插入新的tab键导致语法错误,但它会在beep可能打开的级别之间切换。有没有办法在Vim上获得这种效果?在中输入以下内容。vimrc autocmd BufRead *.py set smartindent cinwords=if,elif,e

我真的很喜欢Python的Emacs编辑器,因为它的智能选项卡(例如,如果我有类似的东西的话)

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

我按下光标上的tab键(在beep的b键上),它不会插入新的tab键导致语法错误,但它会在beep可能打开的级别之间切换。有没有办法在Vim上获得这种效果?

中输入以下内容。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
另见


我个人在做任何复杂的事情时都会使用JetBrain的,用于简单地编辑添加到
中的内容。vimrc
似乎已经足够了。

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

老实说,我从来没能潜入emacs的深处,因为在我的vim洞穴里冥想是很愉快的。说到这里,我们开始吧

开始 贾纳斯

对于初学者,我强烈建议安装readymade(fwiw,这个名字来自《星际迷航》中以Janus Vim为主角的一集)。如果你想要一个快速的vim IDE捷径,这是你最好的选择

我从未经常使用它,但我看到其他人很高兴地使用它,我当前的设置是从老Janus构建中大量借用的

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
有用的链接 下面是一些我发现并喜欢的关于扩展vim的链接:

  • (特定于osx)
  • (如果你想学习vimscript,这本书很棒)

有一个用于Python开发的Vim插件捆绑集合:
一个非常好的插件管理系统。所包含的vimrc文件对于python编程来说已经足够好了,并且可以根据您的需要轻松地进行配置。参见

对于那些在2013年夏天左右到达的人,我相信其中一些线索已经过时了

我遵循了建议Vundle而不是病原体的建议。使用了一天后,我发现安装插件很简单

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

我刚刚开始使用Valloric/YouCompleteMe,我喜欢它。它有C-lang自动完成功能,python也能很好地工作,这要感谢绝地的集成。根据本次讨论/davidhalter/jedi vim/issues/119,它很可能取代绝地vim

最后,浏览提供的/carlhuda/janus插件是一个很好的指南,可以找到您可能不知道要找的有用脚本,例如NerdTree、vim-survian、syntastic、powerline、ack.vim、snipmate


上面所有的“{}/{}”都可以在github上找到,你可以通过谷歌轻松找到它们。

在Linux下,对我有用的是约翰·安德森(sontek)的指南,你可以找到。然而,我作弊,只是使用了他Git报告中的简易配置设置:

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

cd dotfiles

./install.sh vim
到今天为止,他的配置是相当最新的。

不久前我安装了它,我觉得它非常棒。它为您提供了文件路径、函数名、方法、变量名。。。此外,它还使vim非常适合python编程(现在唯一缺少的是一个linter)。

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


编辑(2017年9月8日)更新的URL。

第一个链接是事实上的“Vim as Python IDE”指南,也是我迄今为止看到的最好的一个。第一个链接非常深入,并且充满了Python和Vim的优点。谢谢我不同意杰纳斯。我这么做了,但这太麻烦了。它的安装量远远超过您的需要,因此您永远不会真正了解它。如果你不在Mac电脑上工作,你需要修复它(一些命令使用Mac apple键)。第一个链接被破坏。对于那些寻找第一个链接的人:我应该修改这个答案:你需要克隆vim分支,因为Sontek决定在我们身上使用emacs。”git克隆-b vim'。如果您错误地克隆了主分支,请执行“./install.sh restore”,重新启动计算机,然后一切都会好起来。详细说明中没有提到您建议的行。我还必须添加
autocmd BufRead*.py set shiftwidth=4
以便在按ENTER键时获得4个空格缩进,并且
autocmd BufRead*.py set ts=4
允许您在4个空格增量中删除2017年,我发现VIM 8的本机包管理对我来说已经足够了。@Baron:谢谢您的通知;我已经在我的网站Persagen.com上重新发布了这些文件。