Если я вставлю фрагмент кода из браузера в emacs -nw
с помощью средней кнопки мыши или клавиш Ctrl + Shift + v (при вставке терминала gnome из буфера обмена), он будет иметь неправильный отступ.
Оригинальный код:
for (i=0; i<=10; i++) {
j = j + i;
print j;
}
Становится:
for (i=0; i<=10; i++) {
j = j + i;
print j;
}
В vim можно отключить авто-отступ. В emacs я попробовал 2 способа, которые не работают:
Метод 1:
Сконфигурируйте ctrl + y для использования ОСНОВНОГО выбора в ~ / .emacs
(setq x-select-enable-primary t)
И попробуйте вставить Ctrl-y вместо средней клавиши мыши или Ctrl + Shift + V. Результат: ctrl-y вставляет только из списка уничтожений emacs, а не из внешнего выбора.
Метод 2: Unmap RET из newline-and-indent
:
(add-hook 'lisp-mode-hook '(lambda ()
(local-set-key (kbd "RET") 'newline)))
Работает для набора RET (без отступа), но для средней клавиши мыши или Ctrl + Shift + V применяется автоматический отступ в любом случае.
Автодобавление отступа происходит в emacs, когда с символом новой строки встречаются. Можно использовать electric-indent-local-mode
и electric-indent-mode
для переключения этой установки.
От http://emacsredux.com/blog/2013/03/29/automatic-electric-indentation/
What’s, мало известный, - то, что Emacs 24.1 представил новый глобальный незначительный режим, названный электрическим режимом отступа. Когда включено, введение определенных символов (как новые строки) инициировало передобавление отступа.