簡體   English   中英

無法禁用emacs自動更改行縮進的方式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM