2012-11-26 46 views
10

我不知道很多關於Emacs的,但一些谷歌搜索後,我編輯.emacs文件如下:如何讓我的代碼使Emacs縮進我的//註釋?

(setq c-default-style "bsd" c-basic-offset 4) 

我的目標是讓奧爾曼風格的縮進與4分開的突出部。它按預期工作,但現在我的//註釋不會與我的代碼一起縮進。在我改變這個之前,當我輸入//時,它會自動縮進以符合函數中其餘的代碼。我怎樣才能讓Emacs自動縮進//評論?

我嘗試添加c-indent-comments-syntactically-p 1上述.emacs文件,但是這並沒有改變它...

例如:

int main() 
{ 
    // I'd like this line to be auto-indented to match the block 
    for (int i = 0; i < 10; ++i) 
    { 
     // And this line to be auto-indented to match the block 
     doStuff(); 
    } 
} 

目前,TAB不縮進我//評論,它也不會自動縮進。

回答

8

您可以通過在相關行中放置點並按C-c C-o來檢查並更改當前縮進的值。根據自己的喜好調整相關符號。

這不會是永久的。在您的.emacs中直接調用功能c-set-offset以在全局範圍內進行更改。

簡單的例子:

int main() { 
    // 
} 

這是我的默認縮進。將光標移動到第2行後,我看到相關符號是comment-intro

使用:

(c-set-offset 'comment-intro 6) 

我得到:

int main() { 
     // 
} 

偏移積累跨越符號:

int main() { 
     // 
    { 
      // 
    } 
} 
+0

但是,如果它是一個嵌套塊? – Cornstalks

+1

@Cornstalks偏移量是相對於周圍的偏移量。我添加了一個例子。 – pmr

+0

太棒了。考慮到我上面的'.emacs'文件,添加這個文件的正確方法是什麼?把'(setq c-default-style「bsd」c-basic-offset 4(c-set-offset'comment-intro 4))'放在我的''中。emacs'文件使Emacs barf出現以下錯誤:'錯誤的類型參數:symbolp,(c-set-offset(quote comment-intro)4)' – Cornstalks

1

擊中TAB仍然縮進你的註釋行,對吧?那麼你缺少的是自動識別觸發自動縮進的雙斜線。這是通過(c-electric-slash)實現的。首先確保斜線仍然綁定到該命令: C-h k /(鍵盤斜線幫助)。然後,假設c-electric-slash的文檔顯示出來,請閱讀它以瞭解它在什麼情況下被禁止。

+0

不是。 TAB不再縮進評論。我會編輯我的問題來提到這一點。 – Cornstalks

0

如果你想要把您的評論你的代碼範圍相同alignement,只是folllowing行添加到您的〜/的.emacs文件:

(c-set-offset 'comment-intro 0) 
相關問題