Emacs - tab-completion本地Python变量

zak*_*k23 29 python emacs autocomplete

是否有一个很好的emacs模式,允许Tab键完成本地python变量?我设置了ipython.el,但它只会在解释器的范围内完成选项.我正在寻找能让我在函数或文件的本地命名空间中使用tab-complete标记的东西.

Amo*_*wai 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))
Run Code Online (Sandbox Code Playgroud)

希望这很有用.


der*_*ias 13

我使用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))
Run Code Online (Sandbox Code Playgroud)

有关选项的更多信息,请参阅auto-complete.el文件.

4)重新启动emacs或使用.emacs文件执行Mx加载文件.写一些代码并按TAB键自动完成.


bos*_*kom 10

描述所需选项卡完成的博客文章可以在Emacs中的Python代码完成中找到 .有一些安装包,pymacs,自动完成,绳索,ropemacs,绳索模式,yasnippet和设置,但最后我希望它会得到回报.


Dav*_*ter 5

使用绝地

它比其他任何自动补全库更了解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


Sha*_*son 4

我想您可能正在寻找这样的东西。它使用Pymacspython-mode来完成您正在寻找的事情。

让我们知道您的效果如何?