vim使いの人ならわかってもらえると思うが,スペースでインデントされてるとカーソル移動にやたらと時間がかかるし,行頭がタブの終了場所ではなく,本当の行頭になってしまう.
(それぐらいの設定は.vimrcに書けとか言わないで!)
もしどっちでも良いと思っている人がいたら,この機会に是非すべてタブで統一していただきたいところである.
とは言っても,そんな我儘ばかりも言っていられないし,自分で対処するほうが結果的には早いので,vimで複数の連続したスペースをタブに変換する方法.
スペースをタブに変換する場合
:set noexpandtab :retab 4
タブをスペースに変換する場合
:set expandtab :retab
で,まあ当然自動化できるわけで,.vimrcに書くならこんな感じ
:set noexpandtab :set tabstop=4 :set shiftwidth=4 :set softtabstop=0
noexpand
タブをスペースに変換しない(デフォルトなので書かなくても良い)
tabstop
タブをスペース何個分で表示するか.
shiftwidth
シフトオペレータ(>>)やautoindentで挿入される量.
softtabstop
タブを押した時にスペース何個分カーソルが進むか(tabstopよりも優先順位が高い).0に設定するとtabstopの値になる.
色々と複雑だが,上のように書いておけばもれなくタブ=スペースx4になるので,あとはファイルを開いた時に,
:retab!
とすれば,スペースがタブに変換される.ついでに,
:set autoindent
なんかも書いておくと良い.