Отключить глобальный отступ в Emacs
Как отключить автоматический отступ в Emacs глобально или только для некоторых режимов?
У меня установлено несколько пакетов для RubyOnRails (ruby, html, js, css).
Допустим, я хочу отключить автоиндентирование для css-режима.
3 ответа
Вы можете искать имена переменных, содержащих слово electric
, (Это общий язык Emacs для действий, которые происходят автоматически, когда набираются определенные видимые символы.)
В этом случае Mx apropos-variable
RET electric
RET показывает мне, что есть css-electric-keys
переменная, содержащая список "Самостоятельно вставляемых ключей, которые должны вызывать повторный отступ".
Вы могли бы использовать Mx customize-variable
RET css-electric-keys
RET, чтобы установить этот список на ноль, или добавить (setq css-electric-keys nil)
в ваш файл инициализации.
Иногда второстепенный режим используется для реализации электрических режимов поведения, так что вы можете легко включать и выключать их. Те, вероятно, будут найдены через Mx apropos-command
RET electric
RET, и вы, вероятно, использовали бы ловушку основного режима, чтобы гарантировать, что электрический вспомогательный режим был отключен, подобно этому:
(add-hook 'MAJORMODE-mode-hook 'my-MAJORMODE-mode-hook)
(defun my-MAJORMODE-mode-hook ()
(ELECTRICMODE-mode 0))
Для меня на emacs 24.x, Mxelectric-indent-mode
переключил поведение, которое я хотел отключить.
FWIW, поведение было то, что RET был связан с командой newline
который определен в simple.el
... Среди прочего, поведение этой команды изменяется electric-indent-mode
,
В моем случае (TypeScript + React через веб-режим) переменная, вызывающая отступ, былаweb-mode-enable-auto-indentation
- пришлось переключить его с наnil
.
Я думаю, в общем, вы, возможно, захотите проверить все переменные с помощьюindent
в их именах, которыеt
. Или лучше начать искать сRET
привязка, как предлагают другие.