Как я могу загрузить мой .el файл только при редактировании кода Python - PullRequest
1 голос
/ 10 марта 2011

Я собрал список настроек emacs в файле my-python-setup.el. Как я могу гарантировать, что emacs сначала загрузит python-mode, а затем загрузит эту библиотеку только при редактировании файлов python?

Я пытался поставить

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

в моем файле .emacs, но он загружает эти настройки для всех видов файлов.

Эти настройки находятся в верхней части режима python, и значение auto-mode-alist в настоящее время равно ("\\.py\\'" . python-mode).

Ответы [ 2 ]

5 голосов
/ 10 марта 2011

Я ни в коем случае не эксперт 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 голос
/ 10 марта 2011

Если вы хотите, чтобы ваш код загружался только при редактировании кода Python, вы можете подумать о том, чтобы вставить свой код LISP в свой собственный основной режим, который расширяет режим Python.

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

... here goes your code ...

)

Тогда вы 'Вам придется настроить Emacs для загрузки 'my-python-mode вместо python-mode, настроив auto-mode-alist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...