在Emacs中编写C ++时,为什么它在行中间看似随机缩进?

时间:2017-04-08 11:09:01

标签: c++ emacs

我正在Emacs中编写一个C ++程序,我遇到了一个令人恼火的特性,当我输入一组看似随机的字符时,它会缩进我正在键入的行。

例如:

cout<<"Case #"<<case<<": ";

每次我输入<<运算符时,该行都会缩进两个空格,然后我必须返回并删除。键入(时会发生同样的事情。过了一会儿,你开始厌倦了这一点。知道为什么会这样吗?

我从默认情况下更改的唯一样式点是将'style'变量设置为'linux',而我在~/.emacs中的所有变量都是:

(setq backup-directory-alist (("." . "~/.saves"))) (setq tab-width 4)

1 个答案:

答案 0 :(得分:0)

您可以使用c-toggle-electric-state(例如M-x ...)打开/关闭电动缩进。关闭后,您不应在输入<<(后自动缩进。

如果您一直想要它,可以在c++-mode-hook中关闭它,例如

(defun my-c++-mode-hook ()
  ;; ...
  (c-toggle-electric-state -1))

(add-hook 'c++-mode-hook 'my-c++-mode-hook)