Как вставить в emacs --no-window-system без авто-отступа?
Если я вставлю кусок кода из браузера в 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 применяется автоматический отступ.
1 ответ
Автоиндентирование происходит в emacs, когда встречается символ новой строки. Ты можешь использовать electric-indent-local-mode
а также electric-indent-mode
чтобы переключить эту настройку.
С http://emacsredux.com/blog/2013/03/29/automatic-electric-indentation/
Что мало известно, так это то, что в Emacs 24.1 появился новый глобальный минорный режим, называемый electric-indent-mode. Когда эта опция включена, ввод определенных символов (например, символов новой строки) вызывает переиндентирование.