Почему Emacs Jedi всегда вставляет "elif" после того, как я набираю "else:"?
Я установил режим "Джедай" в Emacs, но обнаружил, что он автоматически вставляет слово elif
каждый раз, когда я создаю новую строку, а затем набираю e l s e : Enter, потому что символ двоеточия, очевидно, начинает логику завершения джедая с elif
предложено как верхнее предложение, и мое нажатие Enter, очевидно, выбирает его. Поэтому я всегда, каждый раз, когда я пытаюсь набрать else
оговорка, придется отступить над посторонним elif
прежде чем продолжить.
Эта проблема уникальна для меня? Я активирую джедая, внимательно следя за документацией:
(add-hook 'python-mode-hook' джедай: настройка) (Сет Джедай: полная точка) (setq jedi:get-in-function-call-delay 200) (setq jedi: метод подсказки nil)
Вы можете найти всю мою .emacs.d/init.el
под контролем версий на GitHub:
https://github.com/brandon-rhodes/dot-emacs
Текущая версия Jedi и связанных с ней инструментов в моей системе:
(: emacs-версия "24.3.1":jedi-версия "0.2.0alpha2") ((: версия "3.4.0 |Continuum Analytics, Inc.| (по умолчанию, 17 марта 2014 г., 16:13:08) \n[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)]":file nil:name "sys") (: версия "0.8.0-final0": файл "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/jedi/__init__.py": имя "джедай") (: версия "0.0.5": файл "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/epc/__init__.py": имя "epc") (: версия "0.0.3": файл "/home/brandon/.v/fopnp-py3/lib/python3.4/site-packages/sexpdata.py": имя "sexpdata"))
Я отмечаю, что :
персонаж связан с функцией Emacs python-indent-electric-colon
но я не уверен, как определить, вызывает ли эта функция логику завершения джедая, но не имеет смысла.
1 ответ
Я думаю, что это ошибка в Python-режиме: tab-always-indent
значение истинно, но поведение такое же, как и раньше.
https://www.gnu.org/software/emacs/manual/html_node/emacs/Indent-Convenience.html
Мое решение:
(add-hook 'python-mode-hook
(lambda ()
(setq-local electric-indent-chars (remq ?: electric-indent-chars))
)
)