2013-10-29 37 views
1

在emacs文件中打開.txt文件並按下標籤並不總是給出相同的結果。某時4,以及某些時候按下標籤顯示2.emacs中的選項卡行爲

同樣的事情也發生在.c/.cpp文件中。

這是emacs 24.2的一項功能嗎?

如何獲得一致性標籤寬度?

+0

做一些搜索/閱讀。 Emacs中的縮進比較複雜。現有的許多S.O.問與答以及Emacs Wiki上的大量信息。 – phils

回答

1

當你按下TAB鍵,根據光標的模式和位置​​,emacs會嘗試縮進該行(在你調用.txt的文件中,只有在開始行的時候,在它會插入一個製表符或空格直到下一個製表符,這取決於您的偏好)。

縮進是相對於你所在行前面的行。所以你會看到按Tab鍵並不總是插入相同數量的空格(或製表符)。這是一個功能。如果你願意,你可以綁定你的Tab鍵做一個不同的事情(插入一個製表符或固定數量的空格),但你會失去非常有用的功能。

您應該使用變量indent-tabs-mode,tab-widthc-basic-offset來讓emacs的行爲如您所願。

例如:

(setq-default c-basic-offset 4 
       tab-width 4 
       indent-tabs-mode nil) 

如果你喜歡使用txt文件,.c和.cpp文件4位(可能需要額外的模式,像nxml額外的變數,但我現在不你還有什麼用)。

+0

任何可以在特定時刻暫時覆蓋此選項卡行爲的方法。 – dearvivekkumar

+0

不知道我是否理解這個問題... C-q C-i是插入一個製表符(或空格)而不嘗試縮進的簡單方法。 – juanleon

+0

我仍然在尋找那些從未被咬過的人使用'tab-width'。在一些罕見的情況下,這確實是你想要的,但這些很少見。 – Stefan

0

Emacs的-Q:「製表寬度在`C源代碼」中定義的變量 它的值是8

自動成爲緩衝本地設置時 。」

哪個IMO是一個有用的行爲,因爲編程模式將採用不同的風格,以不同的方式進行設置,所以重要的是能夠改變它。

在Python中,例如4的製表符是很常見的。