Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs-tab本地Python变量的完成_Python_Emacs_Autocomplete - Fatal编程技术网

Emacs-tab本地Python变量的完成

Emacs-tab本地Python变量的完成,python,emacs,autocomplete,Python,Emacs,Autocomplete,是否有一个好的emacs模式允许本地python变量的制表符完成?我设置了ipython.el,但它只能完成解释器范围内的事情。我正在寻找可以在函数或文件的本地名称空间中标记完整令牌的东西。我想您可能正在寻找。它使用和来做你正在寻找的事情 让我们知道它是如何为您工作的?M-/运行命令dabbrev expand。这将在任何模式下完成本地名称。 我还将meta f1绑定到hippie expand(从所有打开的缓冲区展开)。这对我很有用 ;; Bind hippie-expand (global-

是否有一个好的emacs模式允许本地python变量的制表符完成?我设置了ipython.el,但它只能完成解释器范围内的事情。我正在寻找可以在函数或文件的本地名称空间中标记完整令牌的东西。

我想您可能正在寻找。它使用和来做你正在寻找的事情


让我们知道它是如何为您工作的?

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))

希望这是有用的。

您可以在 .
安装软件包、pymacs、rope、ropemacs、rope模式、yasnippet和设置有一点难度,但最终我希望它会有回报。

我将emacs-autocomplete.el(版本0.2.0)与yasnippet一起使用。虽然它不像eclipse+java那样是一个完整的自动完成环境,但对我来说还可以。但对于像我这样的普通emacs黑客来说已经足够了:)

1) 从(第一个链接)下载autocomplete并将其放在加载路径目录中。同时下载您想要使用的扩展(注意:Ruby和etags扩展需要额外的东西)。将它们也放在yout load path dir中

2) 按照页面上的说明下载并安装(包括(需要…)部分)

3) 将这些行放在.emacs文件中,并根据您的需要进行编辑(如您要使用的所有扩展名):

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


4) 重新启动emacs或使用.emacs文件执行M-x加载文件。编写一些代码,然后按TAB键自动完成。

如果您只想让它以最小的麻烦启动并运行,请尝试该软件包

快乐编码

使用

它比任何其他自动完成库都更了解Python:

  • 内置
  • 多重回报或收益
  • 元组分配/数组索引/字典索引
  • 使用语句/异常处理
  • *args/**kwargs
  • 装饰器/lambdas/闭包
  • 生成器/迭代器
  • 一些描述符:属性/静态方法/类方法
  • 一些神奇的方法:
    \uuuuuuuuuuuuuuuuu
    \uuuuuuuuuuuuuuuuuuuuuuuuuu
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu下一步
    \uuuuuuuuuuuuuuuuuuuuu
  • list.append()、set.add()、list.extend()等
  • (嵌套)列表理解/三元表达式
  • 相对进口
  • getattr()/
    \uuuu getattr\uuuuuuuuuuuu
    /
    \uuuuuuuuu getattribute\uuuuuuuuu
  • 简单/常用系统路径修改
  • isinstance检查if/while/assert

我设置了它,它似乎不完成局部范围内的变量-它应该这样做吗?如果安装后有什么事情需要我做,你能告诉我在emacs中打开它的确切步骤吗?谢谢,我喜欢吃土豆泥。它提供了本地Python变量的制表符完成!即使没有完整的rope+ropemacs+ropemode+pymacs设置,自动完成模式也是值得的
(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))