Emacs добавляет дополнительные пробелы в строки, заключенные в кавычки, при редактировании файлов Python

#emacs

#emacs

Вопрос:

При работе с файлами Python в emacs у меня возникает проблема, из-за которой, если я делаю паузу при вводе строки в кавычках и в конце этого текста есть пробел, я автоматически перейду к следующей остановке табуляции. Т.е.,

 """Foobar """
  

Превращается в

 """Foobar  """
  

Я как старый, так и новичок в использовании emacs (впервые я попытался использовать его более 20 лет назад, но сейчас серьезно пытаюсь переключиться), и я не смог понять, что это делает. Я пробовал следующее:

  • Отключение всех дополнительных модулей.
  • Отключение разделов моего файла init.el.
  • Отключение всего в моем файле init.el.
  • Запуск emacs с помощью «emacs -Q» (это единственное, что работает).

Этого не происходит ни в одном другом режиме, который я использую. Если я загружаю какие-либо дополнительные модули, это, похоже, происходит.

Кто-нибудь видел это раньше?

Помогите?

Комментарии:

1. Моим первым предложением было бы перезапустить ваш редактор. Надеюсь, это все исправит!

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

3. @itsjeyd — Спасибо за предложение. Я попробую отредактировать заголовок. 🙂

4. @S.M.AlMamun — я перезапускал редактор несколько раз, и проблема не устранена.

5. Версия Emacs? Я не понимаю, как в вашем примере есть закрытая строка, но все же вы остановились в строке? что делать? собираетесь перейти к следующей строке? написать комментарий? Раньше я был свидетелем странностей в режиме python, но я не могу воссоздать то, о чем вы говорите, или даже полностью понять процесс, который вы описываете, который его запускает.

Ответ №1:

Кажется, что какой-то хук вставляется TAB , возможно, из tab-to-tab-stop функции. Кстати, какой режим python используется — из python.el или python-mode.el? Если последнее, то какая версия?

Чтобы найти хук, M-xопишите-ключ RET SPACE. Это вызовет справочный буфер, где внизу указаны хуки, вызываемые по умолчанию. Проверьте функции там.

Комментарии:

1. Я использую python-mode 6.1.3. Я постараюсь отследить это, как вы предложили, и сообщить об этом. Спасибо.

2. @DarthBob Спасибо. Думаю, что это место уже обнаружено. Возможно, следуйте здесь: ошибки. launchpad.net/python-mode/ bug/1330045

3. @DarthBob проверил исправление. Пожалуйста, попробуйте использовать текущую магистраль.

4. Я был отключен с пятницы и не смогу попробовать исправление до сегодняшнего вечера (это проблема, с которой я сталкиваюсь дома; моя рабочая конфигурация emacs немного отличается; у меня еще не было возможности их синхронизировать …) Я попробую это сегодня вечером и свяжусь с вами. Спасибо за быстрый ответ.

5. Хм. Я обновился до самой последней строки, и у меня все еще возникает эта проблема. Я использую клавишу описания, чтобы посмотреть, смогу ли я определить, что происходит.