是否有一个好的emacs模式允许Tab键完成本地python变量?我设置了ipython.el,但它只会在解释器的范围内完成选项。我正在寻找能让我在函数或文件的本地命名空间中使用tab-complete标记的东西。
答案 0 :(得分:16)
M- /运行命令dabbrev-expand。这将在任何模式下完成本地名称。 此外,我将meta f1绑定到来自所有打开缓冲区的hippie expand。这对我来说非常有用。
;; Bind hippie-expand
(global-set-key [(meta f1)] (make-hippie-expand-function
'(try-expand-dabbrev-visible
try-expand-dabbrev
try-expand-dabbrev-all-buffers) t))
希望这很有用。
答案 1 :(得分:13)
我使用emacs-autocomplete.el(版本0.2.0)和yasnippet。对我来说没问题,虽然它不像eclipse + java这样完整的自动完成环境。但对于像我这样的普通emacs黑客来说足够了:)。
1)从here(第一个链接)下载自动完成并将其放入您的加载路径目录。还要下载你想要使用的扩展(注意:Ruby和etags扩展需要额外的东西)。把它们放在你的load-path dir中。
2)下载yasnippet并按照该页面上的说明(包括(要求......)部分)进行安装。
3)将这些行放在.emacs文件中并根据需要进行编辑(例如您要使用的所有扩展名):
(require 'auto-complete)
(global-auto-complete-mode t)
(when (require 'auto-complete nil t)
(require 'auto-complete-yasnippet)
(require 'auto-complete-python)
(require 'auto-complete-css)
(require 'auto-complete-cpp)
(require 'auto-complete-emacs-lisp)
(require 'auto-complete-semantic)
(require 'auto-complete-gtags)
(global-auto-complete-mode t)
(setq ac-auto-start 3)
(setq ac-dwim t)
(set-default 'ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-words-in-buffer ac-source-files-in-current-dir ac-source-symbols))
有关选项的更多信息,请参阅auto-complete.el文件。
4)重新启动emacs或使用.emacs文件执行M-x加载文件。写一些代码并按TAB键自动完成。
答案 2 :(得分:10)
可以在以下位置找到描述所需选项卡完成情况的博文 Python code completion in Emacs。 有一些安装包,pymacs,AutoComplete,绳索,绳索,绳索模式,yasnippet和设置,但最后我希望它会得到回报。
答案 3 :(得分:5)
使用Jedi!
它比任何其他自动完成库更能理解Python:
__call__
,__iter__
,__next__
,__get__
,__getitem__
,__init__
__getattr__
/ __getattribute__
答案 4 :(得分:4)
我认为您可能正在寻找something like this。它使用Pymacs和python-mode来完成您正在寻找的内容。
让我们知道它是如何为您服务的?
答案 5 :(得分:3)
如果您只想轻松搞定并运行,请尝试emacs-for-python包。
快乐的编码!