インデントの状態を一発で切り替えるelisp
プログラミングにおいて、その職場、及びプログラムのコーディング規約に従うのは当然の話である。
昨今では、インデントにはスペース4つが当然になりつつある。
(もちろんそうでない場合も多々あるが、特にPHPでは、顕著だ。
それに習い、自分のプログラムにおいても、スペース4つで対応している。
しかし、時たま、職場や預かったプログラムで、インデントにタブを要求される場合がある。
indent-tabs-modeという変数を切りかることによって、スペースとタブを切り替えるのだが、
正直この作業を頻繁にやりたくない。
また、インデントにタブとスペースが混ざるソースなど醜悪この上ない。
ので、関数一発でスペース←→インデントができる関数を作ったので、晒しておく。
(defun toggle-indent() (interactive) (let ( ( tabs-mode indent-tabs-mode ) ) (if tabs-mode (progn (setq indent-tabs-mode nil) (progn (save-excursion (goto-char (point-min)) (replace-string " " " " ))) (message "インデントはスペースになりました。" ) ) ( progn (setq indent-tabs-mode t ) (progn (save-excursion (goto-char (point-min)) (replace-string " " " " ) (message "インデントはタブになりました。")))))))
M-x toggle-indent
を呼べば、そのバッファ中にある全てのスペース4つがタブになったり、タブがスペース4つになったりする。
とりあえずこれで解決。