在 Ubuntu 安装中,我python-mode.el
的文件中同时包含以下命令.emacs
:
(global-set-key [f2] 'hippie-expand)
这样关键字就会突出显示,并且我已经定义的变量可以使用自动扩展[f2]
。如何让自动扩展与 Python 关键字一起工作?例如,给定代码
for x in enumera
通过按[f2]
如何才能将其扩展到
for x in enumerate
(enumerate
是一个已知关键字)。因为我正在学习 emacs,所以答案越详细,就越有帮助!
答案1
也就是说,hippie-expand
通过尝试使用存储在变量中的函数列表来扩展当前单词hippie-expand-try-functions-list
(要查看其内容,请按C-h v hippie-expand-try-functions-list RET
)。例如,该变量的默认值中的第一个函数尝试扩展文件名。hippie-expand
依次要求对每个函数进行扩展,当函数用尽其所有可能的完成时,转到下一个函数。(也就是说,您可以继续按[f2]
以获得更多扩展。)
当您扩展已出现在 Python 代码中的变量名称时,hippie-expand
正在使用函数try-expand-dabbrev
,该函数在当前缓冲区中搜索当前单词。该列表中的另一个函数,try-expand-dabbrev-all-buffers
在所有打开的缓冲区中搜索当前单词。因此,一个快速(且粗糙)的解决问题的方法是创建一个包含所有关键字和内置函数(enumerate
是内置函数)的文件,并让该文件在 emacs 中保持打开状态。也就是说,如果您坚持使用hippie-expand
;显然,如果您能让它们工作,我之前提到的两个包似乎是更好的解决方案。