【问题标题】:Configure jedi not to auto-complete automatically?配置绝地不自动完成?
【发布时间】:2017-04-29 01:57:57
【问题描述】:

我在 emacs 中安装了 jedi-mode 用于 python 编辑,因为我发现 C-.C-, 对于跳转到定义和返回非常有用。然而,自动自动完成并不是我想要的。当我尝试使用安装了 jedi 的 emacs 时,它会不断尝试提出建议并弹出弹出窗口。如何配置 jedi 使其仅响应特定调用而不响应键入或光标移动?

我尝试设置(setq jedi:complete-on-dot nil)(setq jedi:tooltip-method nil),但这些只会禁用绝地的一些反应功能。如何禁用所有这些?

或者,如果我主要只是希望能够跳转到定义,是否有一个不同的 emacs 包会是更好的选择?

【问题讨论】:

  • 如果您正在寻找的只是在定义之间跳转和跳转,那么dumb jump 可能适合您。我没有尝试过,但您要求的是包的整个前提。
  • jedi 检查 python ast,因此它可以向您显示变量属性等事物的定义。 dumbjump 是基于 grep 和 regexps 的,所以能力会差很多。
  • 看来你可以直接启用jedi-mode而不是调用jedi:setup。如果你这样做,“跳转到定义”绑定仍然安装,但自动完成的东西没有设置。
  • 这对我不起作用:设置jedi-mode 而不运行jedi-setup 给了我File mode specification error: (void-function jedi:mode)。 (但我想出了如何得到我想要的东西,并在下面发布了一个答案)
  • 请注意“jedi-mode”和“jedi:mode”的区别。我怀疑你试图运行后者。在没有额外配置的python文件中运行'jedi-mode'给了我没有自动完成的跳转绑定。无论哪种方式,我都很高兴您找到了适合您的解决方案。

标签: python emacs emacs-jedi


【解决方案1】:

jedi 使用 auto-complete 进行自动完成,因此要关闭它,您需要查看 auto-complete manual

; move quick-help tooltips to the minibuffer
(setq jedi:tooltip-method nil)

; disable all auto-completion unless explicitly invoked with M-tab
(setq ac-auto-show-menu nil)
(setq ac-auto-start nil)
(define-key ac-mode-map (kbd "M-TAB") 'auto-complete)

; start jedi
(add-hook 'python-mode-hook 'jedi:setup)

【讨论】:

  • 我们可以为jedi禁用它,而是启用company-mode吗?
猜你喜欢
  • 2020-01-17
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 2012-03-03
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多