今知った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してましたよ。とほほ…
今後は適切に使い分ける価値ありと思いました。