5

Я пытался отключить автоматическое отступление в Emacs в JavaScript в течение трех часов и не смог найти (хорошее) решение.

Моя версия Emacs - 23.3.1 (i486-pc-linux-gnu, GTK+ версия 2.24.3), по крайней мере, так сказано. Это стандартный пакет от Debian Linux (Wheezy), графический интерфейс.

Я обнаружил emacs javascript с автоматическим отступом (и другими), но не хотел устанавливать другой режим только для удаления автоматического отступа (и нет гарантии, что он будет работать с ним), основной режим также отключает подсветку синтаксиса, которую я хочу сохранить , Cc Cl ничего не делает, установка javascript-auto-indent-flag в nil ничего не делает.

Что именно я хочу: Вставить вкладку, если и только если я нажму клавишу TAB. Часть "если" работает, а часть "только если" - нет. Интересно, почему это так сложно?

1 ответ1

1

В режиме Javascript в Emacs символ } связан с функцией js-insert-and-indent . Вы можете привязать его, чтобы просто вставить себя, поместив этот код в файл запуска .emacs :

(defun my-js-mode-hook ()
  "My personal Javascript mode hook."
  (local-set-key (kbd "TAB") 'tab-to-tab-stop)
  (local-set-key (kbd "RET") '(lambda () (interactive) (newline 1)))
  (local-set-key (kbd "SPC") 'self-insert)
  (local-set-key (kbd "}") 'self-insert))

(add-hook 'js-mode-hook 'my-js-mode-hook)

и перезапуск Emacs. Если вы найдете другие подобные символы, вы можете добавить дополнительные вызовы к local-set-key в своей функции ловушки, каждый из которых будет передавать свой символ в функцию kbd .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .