Emacs Python 自动补全之 jedi

时间:2022-03-16 06:22:06

jedi

jedi 的安装配置并不是很友好。github 上也没有明确说明。查了很多资料, 最后才配置成功。可是效果却不是很理想。在补全的时候有明显的卡顿现象. 不知道网上这么多人对其推崇备至是因为什么。不当怨妇了~下面说明下安装过程:


  1. 安装jedi

    M-x package-install jedi jedi-core
    

    这里需要注意,jedi-core是须要安装的。因为后面会用到。

  2. 配置python-mode自动启用jedi 在相应的配置文件中加入以下内容:

    (setq jedi:server-command (list "python3" "/Users/halberd/.emacs.d/elpa/jedi-core-20181207.1/jediepcserver.py"))
    ;; 配置jedi epc server 的启动文件。这里坑了我好久。而且使用的是jedi-core路径
    (add-hook 'python-mode-hook 'jedi:setup) ;; python-mode中自动启用jedi-server
    ;;(setq jedi:setup-keys t) ;; optional
    ;;(setq jedi:complete-on-dot t) ;; optional

    这个配置就是个大大大大坑。为什么说坑呢?

    • github 上没有说明配置方式
    • jedi 更新后,jedi包本身不再包含epc server 的配置信息, 但又没有将epc作为依 赖自动安装,而是需要手动安装。
      即使jedi 提供了jedi:install-server 的命令,但是却hang在下面的操作上(实际没有安装).
    Running: pip install --upgrade /Users/halberd/.emacs.d/elpa/jedi-core-20181207.1/...
    

    我们只能手动把命令复制出来在shell环境执行。

    • c. jedi 使用python 作为epc 的服务环境,在次年(2020年)python2 即将被python3全 面替代的情况下,仍旧使用的是python2. 或者这不是一个坑,而是我没有将本地的 python命令指向python3.
  3. 手动更新jedi-core

    pip3 install --upgrade /Users/halberd/.emacs.d/elpa/jedi-core-20181207.1/
    
  4. 安装epc

    pip3 install epc
    

经过上面的折腾, 终于,jedi的自动补全有反应了。但是,好卡呀~~~~~ ^,^