Почему 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))
    )
)
Другие вопросы по тегам