emacs配置:python-mode-hook

时间:2017-12-07 18:45:23

标签: python emacs configuration elpy

我正在努力处理我的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”。我不知何故认为它可能与以错误顺序调用/定义的钩子有关,但我不明白这里有什么问题。

我很欣赏一些提示。

2 个答案:

答案 0 :(得分:0)

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

(package-initialize)
(elpy-enable)

但是,您还必须正确安装elpy软件包。

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

答案 1 :(得分:0)

同时想出来...问题是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)))