emacsでC/C++のスタイルを設定


このエントリーをはてなブックマークに追加

自分が好むC/C++のスタイルは以下の通り。

  • インデント幅は4
  • インデントはタブではなくスペース
  • 制御文の後の中括弧を次の行に置き、制御文と同じ字下げ位置とする

例は以下の通り。

int main()
{
    for (int i = 0; i < 10; ++i)
    {
        cout << i << endl;
    }
    return 0;
}

これを実現するEmacs Lispは以下の通り。

;; http://w.livedoor.jp/whiteflare503/d/Emacs%20%A5%A4%A5%F3%A5%C7%A5%F3%A5%C8
;;共通設定(?)
(setq-default c-basic-offset 4     ;;基本インデント量4
              tab-width 4          ;;タブ幅4
               indent-tabs-mode nil)  ;;インデントをタブでするかスペースでするか

;; C++ style
(defun add-c++-mode-conf ()
  (c-set-style "stroustrup")  ;;スタイルはストラウストラップ
  (show-paren-mode t))        ;;カッコを強調表示する
(add-hook 'c++-mode-hook 'add-c++-mode-conf)

;; C style
(defun add-c-mode-common-conf ()
  (c-set-style "stroustrup")                  ;;スタイルはストラウストラップ
  (show-paren-mode t)                         ;;カッコを強調表示する
  )
(add-hook 'c-mode-common-hook 'add-c-mode-common-conf)