9

現在、標準のemacsインデントは次のように機能します。


switch (cond) {
case 0: {
  command;
}
  break;
}

休憩が欲しい。ケースに合わせる。

また、c-set-offsetコマンドのリストはどこかにありますか?

4

2 に答える 2

23

インデントをカスタマイズする際の最大の助け(私が見つけた)は、cc-modeが現在の行をインデントするために何を使用するかを理解することです。これがC-c C-o別名M-x c-set-offsetでできることです。構文要素のオフセットをカスタマイズでき、現在の行に使用された要素が表示されます。

カスタマイズする方法は次のとおりです。カーソルをそのbreak;行に移動します。

C-c C-o RET 0 RET

その時点で、コードは次のようにインデントされます。

switch (cond) {
case 0: {
  command;
}
break;
}

オフセットに関するドキュメントについては、変数のdocstringを確認してください。'c-offsets-alist

C-h v c-offsets-alist RET

同様に、これを.emacsに追加できます。

(setq c-offsets-alist '((statement-case-intro . 0)))

インデントをカスタマイズするためのドキュメントはここにあり、読む価値があります。それを行う方法はたくさんあるので、マニュアルを読むことは時間の価値があります(デフォルト以外のインデントが必要な場合)。そして、これがccモードで使用されるすべての構文記号へのポインターです。

于 2009-06-05T18:30:34.160 に答える
1

私にとって、php-mode switchステートメントを正しくインデントするには、次のものが必要です。

      (c-set-offset (quote brace-list-entry) 2 nil)
      (c-set-offset (quote case-label) 2 nil)

しかし、他の人が言っているように、CcCoはあなたの友達です.....

于 2015-11-06T17:14:47.247 に答える