簡體   English   中英

如何讓Emacs在我的C ++代碼中將訪問級別修飾符放在他們自己的縮進級別中?

[英]How to make Emacs put access level modifiers in their own indentation level in my C++ code?

我希望以類似於"bsd"樣式的方式在Emacs中縮進我的C ++代碼,但有一點不同:訪問級別修飾符必須屬於它們自己的縮進級別。 (由於我不使用switch或labels / goto ,一般可以說以冒號結尾的行必須屬於它們自己的縮進級別。)這是一個例子:

 class somewhat
 {
   private:
     int whatever;

   public:
     void somehow()
     {
       if (something_about(whatever))
         like_this();
       else
       {
         std::cerr << "It is not true that something_about("
                   << whatever << ").";
         like_that();
       }
     }
 };

如何配置~/.emacs以反映此首選項? 這是我目前的配置:

; No tabs at all.
(setq indent-tabs-width nil)
(setq tab-width         2)

; [C-like languages]-specific configuration.
(setq c-basic-offset  2)
(setq c-default-style "bsd")

; Configuration for other languages.
; ...

您需要修改c-offsets-alistaccess-label縮進。 我建議你用自己的c-offsets-alist創建一個新的'style'並添加如下行:

(access-label . +)

如果你想從bsd樣式派生,你可以這樣做:

(c-add-style "modified-bsd"
'("bsd"
  (c-basic-offset . 2)
  ;;...MORE MODS...
  (c-offsets-alist
   (access-label . +))))`

另外,我是如何找到要修改的偏移量的? 轉到相關的代碼行並按Cc Cs以顯示CC模式的語法分析。 另外一定要檢查c-offsets-alist的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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