0

我正在为我的 emacs 配置而苦苦挣扎。.emacs 中的相关行是:

(require 'python-mode)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

(add-hook
 'python-mode-hook
 '(lambda ()
    (message "python-mode-hook called")
    (require 'jedi)
    (when (require 'elpy nil t)
      (elpy-enable)
      (setq elpy-rpc-backend "jedi")
      (add-hook
       'jedi-mode-hook
       '(lambda ()
          (setq-local ac-max-width 0.5))))))

当我加载一个 python 文件时,钩子被调用并且我得到“python-mode-hook called”消息。但是,不存在 elpy 功能。如果我那时M-x python-mode,一切都应该如此。

我不明白为什么我需要两次调用“python-mode”。我不知何故认为这可能与以错误的顺序调用/定义的钩子有关,但我不明白这里有什么问题。

我会很感激一些提示。

4

2 回答 2

1

同时想通了...问题是 elpy-enable 确实安装了一个钩子。它并没有像我想的那样直接调用 elpy 模式。因此,只有第二次调用 python-mode 确实导致调用此函数。当然这更好......所以现在我有:

(elpy-enable)
(setq elpy-rpc-backend "jedi")
(add-hook
 'elpy-mode-hook
 '(lambda () (setq-local ac-max-width 0.5)))  
于 2017-12-10T13:57:35.873 回答
0

要启用 elpy 功能,您.emacs只需要

(package-initialize)
(elpy-enable)

但是,您还必须正确安装 elpy 包本身。

尝试从“快速安装”部分执行所有步骤:https ://github.com/jorgenschaefer/elpy#quick-installation

于 2017-12-07T19:05:33.100 回答