このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

タブに関する変数

いつも忘れてしまうのだが、

  • タブコードを使う/使わないは、バッファローカルな indent-tabs-mode 変数。
  • タブキーによる効果を設定するのは、グローバルな c-tab-always-indent 変数。
バッファローカル indent-tabs-mode 変数
動作
nil インデントの際に空白のみ使用
nil タブも使う
(defun my-c-c++-mode-init ()
  (setq c-basic-offset 4)
  (setq indent-tabs-mode nil)
  )
(add-hook 'c-mode-hook 'my-c-c++-mode-init)
(add-hook 'c++-mode-hook 'my-c-c++-mode-init)
グローバル c-tab-always-indent 変数
動作
t タブは常にインデント機能
nil 左端(文字の前)ではインデント機能、それ以外はタブ文字の挿入
t, nil 以外 コメント、文字列などではタブ文字挿入、それ以外はインデント機能

グローバル変数の値を見るには*scratch*バッファとかC-x C-eでもいいが、M-x ielm でELispインタプリタを出しておくとコマンドライン補完が効いて便利。

[追記]インデント量を制御する変数は c-basic-offset 。グローバルとバッファローカルがあるが、グローバルのほうがスタイルで制御されるようだ。スタイルよくわからん。[/追記]