不能禁用emacs自动更改行缩进方式



我想从我的.emacs文件中关闭emacs中所有主要模式的electric-indent-mode

我已经尝试将这些添加到我的.emacs文件(每个单独):

(electric-indent-mode -1)
(add-hook 'after-change-major-mode-hook (lambda() (electric-indent-mode -1)))
(when (fboundp 'electric-indent-mode) (electric-indent-mode -1))
(add-hook 'c-mode-common-hook
  (lambda ()
    (add-hook 'electric-indent-functions
      (lambda () 'no-indent) nil 'local)))

没有工作在我的简单的.cpp测试文件。

为了更清楚一点,下面是发生的事情:

:

#include <iostream>
int main() {
             std::cout << "Hello World!";
  return 0;
}

就变成:

#include <iostream>
int main() {
  std::cout << "Hello World!";
  return 0;
}

当我按下第二个:;

时,std::cout << ...的行重新对齐为有2个空格

我希望能够通过自己输入字符来控制文件的缩进方式,而不是通过emacs更改它们。我相信这是禁用electric-indent-mode(因此我试图禁用),但可能有另一种方法。

我使用的是emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.10.9)

我想你找错人了。在我的Emacs中(这是一个旧版本),冒号在c++模式下被绑定到c-electric-colon。不管electric-indent-mode是什么,它的行为都是"电"的。阅读它的文档;似乎有一个变量c-electric-flag,你可以设置为nil来禁用此行为。

如果所有这些都失败了,并且你想保留c++模式的其他特性,那么重新绑定你不想在该模式下"电子"行为的键似乎是可行的方法。

相关内容

  • 没有找到相关文章

最新更新