
Начиная с Emacs 24.4 (я думаю), cj и ret поменялись местами, так что indent теперь вызывается после ret. И эти отступы в текстовом режиме являются относительными отступами, так что когда вы вставляете код с отступом, он вставляется по диагонали, а не выравнивается:
# copied code
line1
line2
line3
# pasted
line1
line2
line3
Я могу решить эту настройку electric-indent-mode
(команда flip/flop), но мне нравится поведение относительно отступа, когда я пишу в текстовом режиме. Я хочу выключать его только при вставке текста.
Есть ли у кого-нибудь код, который я мог бы использовать для установки сочетания клавиш, вызывающего electric-indent-mode, вставляющего данные из буфера обмена и снова включающего electric-indent-mode?
Я был бы признателен за любое дидактическое объяснение кода, чтобы я мог вспомнить забытый элисп.
решение1
Это должно происходить только в текстовом терминале (где «вставка» заканчивается простой отправкой текста посимвольно в Emacs, как будто вы ввели эти символы).
Начиная с Emacs-25, это больше не должно быть проблемой, поскольку он использует поддержку «вставки в квадратных скобках» из текстового терминала (при которой терминал отправляет специальные управляющие последовательности до и после вставляемого текста).
Его даже не нужно настраивать: «он просто работает».