最近学习Python,准备用Emacs作为编辑器,分享一下Emacs下Python补全的配置。
Emacs下Python补全的方案有很多,网上流传最广泛的一种方案是用pymacs, rope, ropemacs和ropemode结合使用实现补全。这个配置起来非常繁琐,并且有人反应补全很慢,个人感觉这个配置现在是有些过时了的。下面介绍一下使用jedi补全。
安装
jedi可以通过el-get的Master分支安装。el-get是一个第三方Emacs扩展包管理工具,非常好用。可能由于这个插件比较新,el-get的维护者并没有放到Stable分支里面。我们可以将jedi直接写在el-get的my-packages里面,这样如果jedi没有安装,Emacs启动时会自动下载。jedi依赖Python的virtualenv,所以需要先安装virtualenv。jedi本身还有几个其它的依赖插件,el-get会自动帮我们下载。个人非常不建议手动安装这些依赖插件。
jedi支持使用auto-complete进行补全,并且不需要对auto-complete进行单独设置。el-get的recipes已经将auto-complete作为jedi的依赖插件了,所以安装jedi时会自动安装auto-complete。
配置
jedi的配置非常简单,假设你使用的是Python Mode插件,那么在py-mode-hook中加入
(setq jedi:setup-keys t)
(setq jedi:complete-on-dot t)
(when (fboundp 'jedi:setup) (jedi:setup))
即可。
使用效果