0

C++ プログラムをインデントするためにgoogle-c-style.elを使用しています。クラス内の関数は次のようにインデントされます。 ここに画像の説明を入力

これは私が欲しいものではありません。これが欲しいです:

ここに画像の説明を入力

.emacs での設定は次のとおりです。

(setq c-default-style "linux")

(setq c-basic-offset 4)

('cc-modeが必要)

('google-c-style が必要)

(add-hook 'c-mode-common-hook 'google-make-newline-indent)

4

1 に答える 1

1

あなたも必要なようです:

(add-hook 'c-mode-common-hook 'google-set-c-style)

現在、requiregoogle-c-style を使用していても、上記の defun が呼び出されるまでスタイルは追加されません。docstring は、フックにも追加されることを意図していると述べています。


より一般的には、知っておく必要があるインデントの問題についてc-offsets-alist

さまざまな構文要素でインデントを実行する方法をカスタマイズできます。変更する必要がある要素を特定する簡単な方法は、その場所に移動して (たとえばfun()、例ではブレースを開く)、 を押すC-c C-sことです。c-show-syntactic-information

個人的には、この Google スタイルのスクリプトを使用するのではなく、それまたは別の C スタイルから派生させて、自分の好みに合わせて値をオーバーライドします。

たとえば、c-basic-offset が 4 であると想定しているのに、google-style は 2 の c-basic-offset を使用しているため、Google スタイルから派生させてオーバーライドし、c-basic-offset を置き換えることができます。

チェックアウト: Emacs に C++ コードの独自のインデント レベルにアクセス レベル修飾子を配置させる方法は? たとえば。

于 2013-07-01T04:25:39.317 に答える