如何在编辑python代码时加载我的.el文件

时间:2011-03-09 23:12:59

标签: python emacs

我已在文件my-python-setup.el中收集了emacs自定义列表。如何确保emacs首先加载python-mode,然后仅在我编辑python文件时加载此库?

我试过把

(load-library "my-python-setup")

在我的.emacs文件中,但会为所有类型的文件加载这些自定义。

这些自定义设置位于python-mode之上,auto-mode-alist的值当前为("\\.py\\'" . python-mode)

2 个答案:

答案 0 :(得分:5)

我绝不是Emacs专家,但我认为您可以坚持添加python-mode-hook功能并在其中加载您的库。类似的东西:

;; define your hook function
(defun python-mode-setup ()
  (message "Custom python hook run")
  (load-library "my-python-setup"))

;; install your hook so it is called when python-mode is invoked
(add-hook 'python-mode-hook 'python-mode-setup)

这是我的个人python-mode-hook,例如:

(defun python-mode-setup ()
  (setq python-indent-offset 4
        python-indent 4
        ;; turn off indentation guessing in various python modes
        python-guess-indent nil
        python-indent-guess-indent-offset nil
        py-smart-indentation nil
        ;; fix mark-defun in new python.el
        python-use-beginning-of-innermost-defun t))
(add-hook 'python-mode-hook 'python-mode-setup)

答案 1 :(得分:1)

如果你只想在编辑python代码时加载你的代码,你可能需要考虑将你的lisp代码粘贴在扩展python模式的你自己的主模式中。

(define-derived-mode 'my-python-mode 'python-mode "MyPy" 
"A customized version of python-mode"

... here goes your code ...

)

然后,您必须通过调整'my-python-mode来配置emacs以加载python-mode而不是auto-mode-alist