我正在使用Emacs 24并希望在python模式下禁用自动完成模式,因此它不会与jedi冲突.我该怎么做呢(遗憾的是我不知道Emacs Lisp).以下是我在init.el中自动完成的当前设置:
;; auto-complete settings
(require 'auto-complete)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
(require 'auto-complete-config)
(ac-config-default)
; Start auto-completion after 2 characters of a word
(setq ac-auto-start 2)
; case sensitivity is important when finding matches
(setq ac-ignore-case nil)
Run Code Online (Sandbox Code Playgroud)
谢谢.
(ac-config-default)打开global-auto-complete-mode,停止(auto-complete-mode)在python模式下调用,你可以为它写一个建议.
(defadvice auto-complete-mode (around disable-auto-complete-for-python)
(unless (eq major-mode 'python-mode) ad-do-it))
(ad-activate 'auto-complete-mode)
Run Code Online (Sandbox Code Playgroud)
另外我不确定这是你想要的,因为Jedi使用自动完成模式,因为Dmitry在评论中指出,不应该有冲突.
我想我也遇到了类似的问题:带有 Python 特定内容的黄色 Jedi 弹出窗口被来自更通用的自动完成功能的灰色弹出窗口接管。因此,我可以选择与 Python 无关的选项,但不能选择特定于 Python 的选项。
对我有帮助的是确保在 Python 模式下禁用自动完成模式:
(add-hook 'python-mode-hook (lambda () (auto-complete-mode -1)))
Run Code Online (Sandbox Code Playgroud)