Глава 6 "Разработки Ядра Linux" Robert Love объясняет это, также, как и эти свободные веб-ресурсы:
В основном задание верхней половины состоит в том, чтобы выполнить, сохранить любое необходимое состояние, принять меры, чтобы нижняя половина была названа, затем возвратилась как можно быстрее. Нижняя половина делает большую часть работы.
Каждый язык имеет свою собственную конвенцию добавления отступа, таким образом, не очень полезно иметь тот же эффект от легкодоступной клавиши Tab все время. Вот почему много главных режимов ¹ переопределяют обязательный ключ.
Для переопределения установки для конкретного режима свяжите его в его контурной карте.
(defun insert-two-spaces (&optional count)
(interactive "*p")
(insert (make-string (* 2 count) ?\ )))
(add-hook 'python-mode-hook '(local-set-key "\t" 'insert-two-spaces))
Для переопределения установки везде можно определить постоянный незначительный режим. См. руководство Elisp для того, как определить незначительный режим.
(define-minor-mode magnus-minor-mode
"Override the binding of the TAB key."
:keymap '(([?\t] . insert-two-spaces))
:global t)
(magnus-minor-mode 1)
¹ то, Что Вы называете “волшебным волшебным режимом файла”, является главным режимом. Если Вам не нравится редактор, который делает вещи автоматически, я предлагаю нано.
C-h c TAB
показать? – Gilles 'SO- stop being evil' 15.10.2012, 00:58