[英]Setting up Vim for Python
我真的很喜欢 Python 的 Emacs 编辑器,因为它的智能选项卡例如如果我有这样的东西
def foo():
if bar:
blah
[b]eep
并且我按下光标上的 Tab 键(它在哔声的 b 上),它不会插入导致语法错误的新标签页,但它会在哔声可以打开的可能级别之间切换。 有没有办法在 Vim 上获得这种效果?
一般来说,vim 是一个非常强大的常规语言编辑器(宏扩展了它,但我们现在将忽略它)。 这是因为 vim 是 ed 之上的一个薄层,而 ed 只不过是一个会说正则表达式的行编辑器。 Emacs 的优点是建立在 ELisp 之上; 让它能够轻松解析复杂的语法并执行您上面分享的缩进技巧。
老实说,我从来没有能够深入到 emacs 的深处,因为它在我的 vim 洞穴中冥想简直令人愉快。 话虽如此,让我们跳进去。
雅努斯
对于初学者,我强烈建议安装现成的Janus 插件(顺便说一下,这个名字来自以 Janus Vim 为特色的星际迷航剧集)。 如果您想要一个 vim IDE 的快速快捷方式,那么它是您物有所值的最佳选择。
我从来没有使用过它,但我看到其他人很高兴地使用它,而且我当前的设置是从旧的 Janus 构建中大量借用的。
Vim病原体
否则,请自行探索! 如果您想查看 vim 插件的世界,我强烈建议您安装vim 病原体。
它是一种包管理器。 一旦你安装了它,你可以将git clone
包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 的一些链接:
对于那些在 2013 年夏天左右到达的人来说,我相信这个帖子中的一些已经过时了。
我跟着这个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 轻松找到它们。
将以下内容放入您的.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 的PyCharm和IdeaVIM 插件,对于简单的编辑,添加到.vimrc
似乎就足够了。
有一个用于 Python 开发的 Vim 插件的捆绑集合: http : //www.vim.org/scripts/script.php? script_id=3770
回复:已死的“将 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 日)更新的 URL。
前段时间我安装了Valloric/YouCompleteMe ,我觉得它真的很棒。 它为您提供文件路径、函数名称、方法、变量名称的补全...与davidhalter/jedi-vim一起使 vim 非常适合 Python 编程(现在唯一缺少的是 linter)。
一个非常好的插件管理系统使用。 包含的 vimrc 文件足以用于 Python 编程,并且可以根据您的需要轻松配置。 见http://spf13.com/project/spf13-vim/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.