Eiscs config lisp код, который меняет режим электрического отступа до и после вставки из буфера обмена

325
Pablo Marin-Garcia

Начиная с Emacs 24.4 (я думаю), cj и ret были поменяны местами, поэтому отступ теперь вызывается после ret. И эти отступы в текстовом режиме являются относительными относительно отступа, поэтому, когда вы вставляете код с отступом, код вставляется по диагонали, а не выравнивается:

# copied code line1 line2 line3  # pasted line1 line2 line3 

Я могу electric-indent-modeотключить эту настройку (команда flip / flop), но мне нравится поведение с отступом, когда я пишу в текстовом режиме. Я хочу отключить его только при вставке текста.

У кого-нибудь есть код, который я мог бы использовать, чтобы установить ярлык вставки, который вызывает режим электрического отступа, вставить из буфера обмена и снова включить режим электрического отступа?

Я был бы признателен за любое дидактическое объяснение кода, чтобы я мог вспомнить свой забытый elisp.

2

1 ответ на вопрос

1
Stefan

Это должно происходить только в текстовом терминале (где «вставка» заканчивается просто отправкой текстового символа char с помощью char в Emacs, как если бы вы вводили эти символы).

Начиная с Emacs-25, это больше не должно быть проблемой, потому что он использует поддержку «вставки в скобки» из текстового терминала (так, чтобы терминал отправлял специальные escape-последовательности до и после вставленного текста).

Нет необходимости его настраивать: «это просто работает».