2013-06-20 57 views
2

當我按下基本模式下的Tab鍵時,我無法使emacs 24.3版縮進兩個空格。我讀過其他一些帖子,如set 4 Space Indent in Emacs。我敢肯定,這用於較老版本的Emacs的工作:如何使用emacs版本24.3控制製表符和空格?

(setq tab-width 2) 
(setq indent-tabs-mode nil) 

我現在想這一切:

(setq tab-width 2) 
(setq-default tab-width 2) 
(setq indent-tabs-mode nil) 
(setq-default indent-tabs-mode nil) 
(setq indent-line-function 'insert-tab) 
(setq tab-stop-list (number-sequence 2 400 2)) 

現在我發現,標籤縮進去之後先白在該行的空間塊

this is my first line 
    second line starts here 

我無法弄清楚如何得到它簡單

this is my first line 
    second line starts here 

也許問題是我的配置?我在我自己的用戶主目錄中安裝了這個新版本的emacs - 它不是emacs的系統版本。

+0

我認爲基本模式的鉤子是壞的 - 這應該有效,但它不 - 對不起:http://stackoverflow.com/questions/69934/set-4-space-indent-in -emacs-in-text-mode – lawlist

+0

基本模式繼承文本模式鉤子。 。 。嗯。 – lawlist

+0

lawlist:'基本模式鉤子沒有壞;它(故意)不存在。 – phils

回答

2

其實,你的「我現在想這一切的」配置工作得很好:

(setq-default tab-width 2) 
(setq-default indent-tabs-mode nil) 
(setq indent-line-function 'insert-tab) 
(setq tab-stop-list (number-sequence 2 400 2)) 

如果你減少你的init文件到這一點,應該根據需要工作。

你可能會在配置的其他地方打破設置?

+0

這是工作 - 實際上我的整個.emacs文件正在工作。我正在做的測試是 – MrCartoonology

+0

這是工作 - 事實上,我的整個.emacs文件正在工作。我在做什麼來測試這是emacs -Q繞過我的.emacs文件,然後創建一個小文件jnk.el與其中的一些命令。如果jnk.el是上述命令,並且我在其上運行M-x eval-buffer,那麼它不起作用。如果我在jnk.el上運行M-x加載文件,它不起作用。但是,如果我的當前緩衝區是我的文本文件(在基本模式下),並且我在jnk.el上執行M-x加載文件,那麼jnk.el中的命令DO將開始應用於文本文件!這是意外嗎?感謝您的幫助,我現在已經過去了這個挫折。 – MrCartoonology

+0

我懷疑你剛剛被預先存在的緩衝區局部值弄糊塗了。以上命令將設置默認值(因爲前兩個變量自動爲緩衝區本地,但後兩個變量不是),但是如果在啓動Emacs之後正在評估/加載代碼,現有緩衝區已經有自己的本地值。 – phils

0

如果你想改變行爲「當我打」的時候要做的第一件事就是做C-h k <foo>。這將告訴你哪個命令正在運行,並且可能會給你一些關於如何改變它的行爲的提示。 TAB鍵的行爲取決於主要模式,因此根據您使用的主要模式進行操作。如果您使用的是fundamental-mode,那麼您不會以正常方式使用Emacs,所以我建議您先嚐試修復它。