jedi实现Emacs下Python补全

最近学习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))

即可。


使用效果

jedi实现Emacs下Python补全_第1张图片

你可能感兴趣的:(jedi实现Emacs下Python补全)