Как вставить в 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. Когда эта опция включена, ввод определенных символов (например, символов новой строки) вызывает переиндентирование.

Другие вопросы по тегам