我真的很喜欢 Python 的 Emacs 编辑器,因为它具有智能标签,例如,如果我有这样的东西
def foo():
if bar:
blah
[b]eep
然后我按下光标上的制表符(在哔哔声的 b 上),它不会插入一个新的制表符,导致语法错误,但它会切换哔哔声的可能级别。有没有办法在 Vim 上获得这种效果?
最佳答案
总的来说,vim 是一个非常强大的常规语言编辑器(宏扩展了它,但我们暂时忽略它)。这是因为 vim 是 ed 之上的一个薄层,而 ed 只不过是一个说正则表达式的行编辑器。 Emacs 的优势在于构建在 ELisp 之上;让它能够轻松解析复杂的语法并执行您上面分享的缩进技巧。
老实说,我从来没有能够深入到 emacs 的深处,因为它只是在我的 vim 洞穴中令人愉快的冥想。话虽如此,让我们开始吧。
开始
杰纳斯
对于初学者,我强烈推荐安装现成的Janus plugin (fwiw,这个名字来自以 Janus Vim 为主角的星际迷航剧集)。如果您想要一个快速的 vim IDE 快捷方式,那是您最好的选择。
我从来没有经常使用它,但我已经看到其他人愉快地使用它,而且我当前的设置大量借鉴了旧的 Janus 构建。
Vim 病原体
否则,请自行探索!我强烈推荐安装 vim pathogen如果你想看看 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 的链接:
- Turning Vim Into A Modern Python IDE
- Vim As Python IDE
- OS X And Python (特定于 osx)
- Learn Vimscript The Hard Way (如果你想学习 vimscript,这本书很棒)
关于python - 为 Python 设置 Vim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172802/