Как мне полностью отключить все авто-отступы в Emacs? Мне нужно отключить его, по крайней мере, для основного режима, но у меня все в порядке с глобальным отключением для текущего сеанса.
Пожалуйста, прочтите остальную часть этого вопроса, прежде чем объявить его дубликатом. Все остальные ответы, которые я нашел, предназначены для более целенаправленного отключения отступов. Я действительно хочу полностью отключить все авто-отступы для всей сессии.
Установка electric-layout-mode
на nil
не работает.
Детали
Иногда мне нравится составлять большие сообщения коммитов Git с помощью моего текстового редактора Windows ASCII. Эти сообщения часто имеют списки маркеров, блоки кода или другие вещи, для которых точное форматирование в моем исходном документе имеет смысл. Моя кодовая база находится в Linux, и я подключаюсь к коробке с помощью только текстового SSH-клиента. Когда Git входит в Emacs для редактирования сообщения фиксации, я хочу иметь возможность скопировать исходное сообщение фиксации в буфер обмена Windows, а затем вставить его с помощью команд вставки Windows. С точки зрения Emacs, я печатаю то, что было найдено в текстовом файле Windows. К сожалению, когда Emacs видит строки с отступами, он добавляет свой собственный автоматический отступ, поэтому я получаю этот огромный треугольник пустого пространства вдоль левого края буфера.
Я использую GNU Emacs 24.3.1.
Временное решение
Мой текущий обходной путь - перенести мой текстовый файл Windows в файловую систему, смонтированную на моем хосте Linux, загрузить файл в Emacs, а затем использовать kill и yank для передачи содержимого. Это немного неуклюже.
пример
Вот пример блока текста:
a
- b
c
d
Вот как это выглядит, когда я вставляю это в Emacs-under-ssh через MSWin paste:
a
- b
c
d
Если я нажму C-h l
после того, как сделаю пасту, вот что я вижу. Обратите внимание, что переводы строки вводятся с использованием C-j
, а не RET
.
a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j
SPC SPC SPC SPC d C-j C-h l
:set paste
? Это в основном говорит «не трогайте вставленный текст в любом случае». Что также включает в себя авто-отступ.
hack-local-variables-hook
- чтобы по существу отменить то, что другие основные режимы устанавливают как часть их стандартная инициализация.fundamental-mode
это просто маленькая функция внутриsimple.el
- то есть(kill-all-local-variables) (run-mode-hooks)
.M-x find-function RET fundamental-mode RET
- вы можете изменить / создать свой собственный по мере необходимости; однако, если вы измените имя, оно не будет использоваться некоторыми функциями, поэтому подумайте о том, чтобы сохранить то же имя.