c-indent-line

public void f() {
■
}

■にカーソルがある時に,C-i しても,インデントしてくれねーときがあります。
以前,ワタシは書きました。
C-i を c-indent-line-or-region にバインドすればいいと。
けど,これだと役をしないじゃないか。
あぁ,オレは嘘を垂れ流していたんだ。。。


けどけど,上記の場所にカーソルがある時に,
M-: して,(c-indent-line) すると,インデントしてくれる。
ほうほう。


だもんで,M-: して,(local-set-key "\t" 'c-indent-line) して,
C-i したら,ごらぁ! と怒られました。


むむむ。
ならばと,my-c-indent-line というインタラクティブなラッパー?関数を定義して,
バインドしてみました。

(defun my-c-indent-line (&optional syntax quiet ignore-point-pos)
  (interactive)
  (c-indent-line syntax quiet ignore-point-pos))

を評価して,M-: して,(local-set-key "\t" 'my-c-indent-line) して,
C-i !! おぉー,きちんとインデントしてくれるね−。


あとは,c-mode-hook にでも追加しておけばオッケーね。
なんか別解がありそうだが。。。