Как я могу использовать макрос Emacs, который уже скомпилирован?

Я пытаюсь изменить основной режим Python, чтобы он работал немного по-другому. В частности, я хотел бы изменить python-indent-region. Я считаю, что выяснил, какие изменения мне нужно сделать (для этого нужно изменить строку #1070 на (beginning-of-line)). Я попытался изменить это, скопировав функцию в мой файл init.el и изменив эту строку. Однако, когда я пытаюсь использовать эту функцию, я получаю следующую ошибку:

Lisp error: (void-function python-rx)

Я провел некоторое исследование, и похоже, проблема в том, что python-rx на самом деле определяется с помощью defmacro в python.el. Поскольку python.el распространяется с emacs, он уже скомпилирован и, похоже, находится в /usr/share/emacs/24.5/lisp/progmodes/python.elc, Я читал здесь о компиляции макросов, и, насколько я понимаю, макрос был скомпилирован, поэтому, когда я пытаюсь сослаться на него, он больше не доступен.

Это сводится к двум вопросам:

  1. Я прав в своем понимании?
  2. Как я могу достичь своей цели переопределения этой функции, чтобы она была практически одинаковой, несмотря на то, что она опирается на макрос python-rx?

Заранее благодарю за любую помощь!

0 ответов

Другие вопросы по тегам