是否有一个很好的emacs模式,允许Tab键完成本地python变量?我设置了ipython.el,但它只会在解释器的范围内完成选项.我正在寻找能让我在函数或文件的本地命名空间中使用tab-complete标记的东西.
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))
希望这很有用.
我使用emacs-autocomplete.el(版本0.2.0)和yasnippet.对我来说没问题,虽然它不像eclipse + java这样完整的自动完成环境.但足够像我这样的常见emacs黑客:)
1)从此处下载自动完成(第一个链接)并将其放在您的加载路径目录中.还要下载你想要使用的扩展(注意:Ruby和etags扩展需要额外的东西).把它们放在你的load-path dir中.
2)下载yasnippet并按照该页面上的说明进行安装(包括(require ...)部分).
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文件执行Mx加载文件.写一些代码并按TAB键自动完成.
描述所需选项卡完成的博客文章可以在Emacs中的Python代码完成中找到 .有一些安装包,pymacs,自动完成,绳索,ropemacs,绳索模式,yasnippet和设置,但最后我希望它会得到回报.
使用绝地!
它比其他任何自动补全库更了解Python:
内建
多重收益或收益
元组分配/数组索引/字典索引
有陈述/异常处理
* args / ** kwargs
装饰工/ lambdas /瓶盖
生成器/迭代器
一些描述符:property / staticmethod / classmethod
一些魔术方法:__call__
,__iter__
,__next__
,__get__
,__getitem__
,__init__
list.append(),set.add(),list.extend()等。
(嵌套)列表推导/三元表达式
相对进口
getattr()__getattr__
//__getattribute__
简单/常用的sys.path修改
isinstance检查if / while / assert