在perl模式emacs中关闭自动缩进

在perl模式emacs中关闭自动缩进,emacs,cygwin,elisp,indentation,cperl-mode,Emacs,Cygwin,Elisp,Indentation,Cperl Mode,当我使用Emacs时,我打开任何自动缩进并使用自定义缩进方案(保留前一行的缩进,仅使用空格) 在c模式下,我刚刚用c-c-l关闭了电动模式 但在perl模式下,我不确定如何实现同样的效果 看着。我看得出来 (defvar perl-mode-map () "Keymap used in Perl mode.") (if perl-mode-map () (setq perl-mode-map (make-sparse-keymap)) (define-key perl-mod

当我使用Emacs时,我打开任何自动缩进并使用自定义缩进方案(保留前一行的缩进,仅使用空格)

在c模式下,我刚刚用
c-c-l
关闭了电动模式

但在perl模式下,我不确定如何实现同样的效果

看着。我看得出来

(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设置变量perl模式映射
,但我只得到
[不匹配]

这是因为我的perl-mode.el是预编译的吗?当我试图
M-x查找函数perl-mode
时,它抱怨找不到它perl-mode.el。不过,我确实有一个perl-mode.elc文件


我正在通过cygwin上的控制台运行emacs。

在配置文件(.emacs或~/.emacs.d/init.el)中添加以下代码


我的错。我不知道emacs中有正常变量和用户选项变量

在scratch缓冲区中运行
(setq perl mode map(make sparse keymap))
,然后重新加载perl mode为我禁用了电子缩进

另外,谢谢你的回答


编辑:重新加载perl模式非常重要。关闭
电子缩进模式
,因为
perl模式
就是这样做的。我在我的
~/.emacs.d/init.el

(defun perl-mode-disable-auto-indent()
    (electric-indent-mode -1))
(add-hook 'perl-mode-hook 'perl-mode-disable-auto-indent)
你可以找到类似的帖子,还有

(defun perl-mode-disable-auto-indent()
    (electric-indent-mode -1))
(add-hook 'perl-mode-hook 'perl-mode-disable-auto-indent)