19

重複の可能性:
Emacs-インデントをオーバーライド

私が欲しいのは、emacsが名前空間内のコードをインデントしないことです

namespace a_namespace{

// no indentation
int namespace_global_variable;


// no indentation
class Class {
    // comment
    Class();
    //...
};

// and so on


}

innamespace変数を変更したり、目的のポイントでインデントを変更しようとしたりするとC-c C-o、目的の効果が得られません(実際、後者は関数内のすべてのインデントを削除しました)。

私のインデント構成は次のようになります(Google emacs構成からコピー):

(c-offsets-alist . ((arglist-intro vista-c-lineup-expression-plus-4)
                    (func-decl-cont . ++)
                    (member-init-intro . +)
                    (inher-intro . ++)
                    (comment-intro . 0)
                    (arglist-close . c-lineup-arglist)
                    (topmost-intro . 0)
                    (block-open . 0)
                    (inline-open . 0)
                    (substatement-open . 0)
                    (statement-cont
                     .
                     (,(when (fboundp 'c-no-indent-after-java-annotations)
                         'c-no-indent-after-java-annotations)
                      ,(when (fboundp 'c-lineup-assignments)
                         'c-lineup-assignments)
                      ++))
                    (label . /)
                    (case-label . +)
                    (statement-case-open . +)
                    (statement-case-intro . +) ; case w/o {
                    (access-label . /)
                    (innamespace . -))))
4

1 に答える 1

18
(defconst my-cc-style
  '("cc-mode"
    (c-offsets-alist . ((innamespace . [0])))))

(c-add-style "my-cc-mode" my-cc-style)

Jason Zhang回答から。ここで動作します。

于 2012-12-11T17:35:55.683 に答える