[英]Cannot disable emacs automatically changing how lines are indented
我想從我的.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 +版本3.10.9)
我認為您在吠錯樹。 在我的Emacs(肯定是較舊的版本)中, c-electric-colon
在C ++模式下綁定到c-electric-colon
。 不管electric-indent-mode
如何,它的行為都是“電”的。 閱讀其文檔; 似乎有一個可變的c-electric-flag
,您可以將其設置為nil
以禁用此行為。
如果所有其他方法都失敗了,並且您想保留C ++模式的其他功能,那么重新綁定不想在該模式下“電”運行的鍵似乎是可行的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.