目次
はじめに
cc-modeにはいくつかのマイナーモードが付属してます。
それらを有効化する方法を書きます。
cc-mode付属のマイナーモード
マイナーモード名 | 説明 | 切り替えコマンド | モードラインの表示 |
---|---|---|---|
syntactic-indentation mode | C-jでインデントする(デフォルトで有効) | c-toggle-syntactic-indentation | なし |
electric mode | 特定の文字を入力すると自動的にインデントする(デフォルトで有効) | c-toggle-electric-state | l |
auto-newline mode | 特定の文字を入力すると自動的に改行を入れる | c-toggle-auto-newline | a |
hungry-delete mode | <del>や<backspace>で空白文字を消すとき、次の文字が現れるまで空白文字をすべて消す(改行含む) | c-toggle-hungry-state | h |
subword mode | M-fやM-bで移動するとき、次の大文字でストップする | subword-mode | w |
auto-newline modeとhungry-delete-key modeを同時に切り替えできるc-toggle-auto-hungry-stateという切り替えコマンドもあります。
comment styleを切り替えできるモードもありますが、AWK modeのようにそれらの1つしかもたないモードでは無効ですので、設定していません。
マイナーモードの設定方法
CC Mode共通の設定は、「c-mode-common-hook」というフックで設定します。
ここでは、my-c-mode-common-hookという自前のフックを設定し、c-mode-common-hookに追加しています。
(defun my-c-mode-common-hook ()
(c-toggle-auto-newline 1)
(c-toggle-hungry-state 1)
(subword-mode 1)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
参考文献(参考リンク)
- /usr/share/emacs/27.1/lisp/progmodes/cc-cmds.el.gz
- [改訂新版]Emacs実践入門p.170
- CC Mode contains several minor-mode