Как я могу использовать макрос 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
, Я читал здесь о компиляции макросов, и, насколько я понимаю, макрос был скомпилирован, поэтому, когда я пытаюсь сослаться на него, он больше не доступен.
Это сводится к двум вопросам:
- Я прав в своем понимании?
- Как я могу достичь своей цели переопределения этой функции, чтобы она была практически одинаковой, несмотря на то, что она опирается на макрос
python-rx
?
Заранее благодарю за любую помощь!