Отключить авто-отступ в emacs в Perl-режиме
Когда я использую Emacs, я выключаю любой автоматический отступ и использую собственную схему отступа (сохраняйте отступ предыдущей строки, используя только пробелы).
В с-режиме я просто использовал C-c C-l
отключить электрический режим.
Но в Perl-режиме я не уверен, как добиться того же.
Глядя на http://mirror.fraunhofer.de/CPAN/misc/emacs/perl-mode.el. я могу видеть
(defvar perl-mode-map ()
"Keymap used in Perl mode.")
(if perl-mode-map
()
(setq perl-mode-map (make-sparse-keymap))
(define-key perl-mode-map "{" 'electric-perl-terminator)
(define-key perl-mode-map "}" 'electric-perl-terminator)
(define-key perl-mode-map ";" 'electric-perl-terminator)
...
Так я попробовал M-x set-variable perl-mode-map
, но я только получаю [No match]
,
Это потому, что мой perl-mode.el предварительно скомпилирован? Когда я пытаюсь M-x find-function perl-mode
он жалуется, что не может найти его perl-mode.el. Однако у меня есть файл perl-mode.elc.
Я запускаю Emacs через консоль на Cygwin.
3 ответа
Мой плохой. Я не осознавал, что в emacs были нормальные переменные и переменные пользовательских опций.
Бег (setq perl-mode-map (make-sparse-keymap))
затем в перезагруженном буфере перезагрузка perl-mode отключила электрические отступы для меня.
Также спасибо за ответ syohex.
РЕДАКТИРОВАТЬ: важно перезагрузить Perl-режим, чтобы это работало.
Добавьте следующий код в ваш файл конфигурации (.emacs или ~/.emacs.d/init.el)
(defun perl-mode-disable-auto-indent ()
(local-unset-key (kbd "{"))
(local-unset-key (kbd "}"))
(local-unset-key (kbd ";"))
(local-unset-key (kbd ":")))
(add-hook 'perl-mode-hook 'perl-mode-disable-auto-indent)
Выключи electric-indent-mode
за perl-mode
как я это делаю Я добавляю следующее в мой ~/.emacs.d/init.el
(defun perl-mode-disable-auto-indent()
(electric-indent-mode -1))
(add-hook 'perl-mode-hook 'perl-mode-disable-auto-indent)