今知ったvimの『%』


vimでは色々な操作で『%』をよく使います。。


今回の『%』はコマンドモードで使うとき。

ヘルプをみても、表示されるのはmotion系でした。

:h %

で、なんの『%』を探していたかといいますと、置換時に使う『%』

sコマンドは行に対しての置換だが、%sとすることでファイル全体の置換を行うことができる。

これは知っていたのですが、なんとコマンドラインの%の意味は、今開いているファイル全体を意味するらしく、
実はsコマンド以外も使えるようです。(今頃気づいて調べた)


やっぱあれですね、『おまじない』とか、よく聞く言葉ですがあまり好きになれないフレーズです。


「なぜそれをするのか」「なにを意味するのか」というのは知っておいた方がいい感じですね。
ブラックボックスではないもので、ちょっと不思議に感じたら追いかけてみる(深追いしすぎずw)のは面白いかも。


例えば「なぜ、Rubyにはインクリメントする++が存在しないのかとか」、理由は「あーなるほど」という内容だった。
Matzさんから聞いたわけじゃないけど、こういう話は好きだったりする。話がずれてしまいそうなので、戻します。


今まで%sという一つのコマンドだと思っていました・・・


実例はこんな感じ。

開いているファイル全体を対象に置換

:%s/foo/bar/gc

現在開いているファイルのバックアップファイルを作成

:w %.back

現在開いているファイルをソートして、リダイレクト出力

:!sort % > thisfile_sort.txt

開いているファイル全体を対象に、整形(このコマンドはプラグイン

:%Align =

基本的すぎるたった一文字の「%」。奥が深い!


これは、バッドノウハウ(奥が深い症候群)なのか??


【奥が深い症候群とは】
http://0xcc.net/misc/bad-knowhow.html


今まで、全選択するときは ggVGしてましたよ。とほほ…


今後は適切に使い分ける価値ありと思いました。