使用 AutoComplete 扩展
# 03/04/2021 我们创建该章节,开始使用 Auto Complete 自动补全,该章节将记录 Auto Complete 的使用笔记。
安装 Auto Completion 模块
auto-complete/auto-complete: Emacs auto-complete package
全局开启自动补全功能
init file – How do I make auto-complete enabled by default – Emacs Stack Exchange
1)M-x customize-variable [RET] global-auto-complete-mode [RET]
2)Global Auto Complete Mode: on
通过 Emacs 快捷键来选择补全内容
在 Auto Complete 中,默认使用上下键来选择,而我们希望使用 C-n C-p 来选择。需要进行如下设置:
1)M-x customize-group [RET] auto-complete [RET]
2)设置 Ac Use Menu Map: on 属性;
Python 自动补全
# 07/10/2019 这是首次接触 Emacs 的自动补全。
自动补全是如何工作的?
自动补全的工作流:Frontend => Backend => Python Module => Static Analysis
在 Frontend 中,我们与提供自动补全的模式 (比如CompanyMode/AutoComplete等等)交互,它们调用一些 后端的Emcas模块 (比如company-jedi/Jedi.el等等),这些后端模块调用一些 Python 模块 (比如jedi/rope等等),这些 Python模块 负责代码静态分析,导入相应的包。
Frontend,有两种, CompanyMode 与 AutoComplete
目前(07/10/2019),我们使用的是 CompanyMode 。因为从 GitHub 上看,上次插件更新时间是六天前(03/24/2019),而另一个是2017年的,难不成是太稳定了???
Backend,只有两个选择:company-jedi 和 Ropemacs
目前(07/10/2019),我们使用 Ropemacs(这是根据插件在 GitHub 上的更新时间来看的。收到的另外一个好处是 Ropemacs 可以同时作为 CompanyMode 和 AutoComplete 模式的后端。
我们的选择
CompanyMode => Ropemacs => rope ,这模块那模块的,Ropemacs 太难弄了。
CompanyMode => company-jedi => jedi:
# 1. 安装Python的Jedi模块 # https://github.com/davidhalter/jedi pip install jedi # 2. 在Emacs中安装company-jedi模块 # https://melpa.org/#/company-jedi # 3. 使用CompanyMode # http://company-mode.github.io/
参考文献
EmacsWiki/Completion
auto-complete/auto-complete: Emacs auto-complete package
key bindings – Using ctrl-n and ctrl-p inside the box for suggessted words to auto-complete – Emacs Stack Exchange