1

スタイルに似た方法で Emacs の C++ コードをインデントしたいのですが"bsd"、1 つの違いがあります。アクセス レベル修飾子は、独自のインデント レベルに属している必要があります。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.
; ...
4

1 に答える 1

3

access-labelのインデントを変更する必要がありますc-offsets-alist。独自の新しい「スタイル」を作成し、次のc-offsets-alistような行を追加することをお勧めします。

(access-label . +)

スタイルから派生させたい場合はbsd、次のようにすることができます。

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

また、変更するオフセットをどのように見つけましたか? 関連するコード行に移動し、 を押し C-cC-sて、CC モードの構文解析を表示します。のヘルプも必ず確認してくださいc-offsets-alist

于 2013-01-06T12:20:23.467 に答える