Vimの折り畳み機能を使ってみます。
「テキストにheadコマンドで見出しをつける」で作った、見出しあり・見出しなしのテキストファイルhoge2・hogeを使います(hoge2は、hogeに見出しを入れて、さらに見出し以外の行頭にタブを挿入したファイル)。
この2つのファイルのdiff結果は以下のとおりです(タブを無視するオプション-wを指定しています)。
~$ diff -w hoge hoge2 0a1 > ==> SECTION:00 <== 6000a6002,6003 > > ==> SECTION:01 <== 12000a12004,12005 > > ==> SECTION:02 <== 18000a18006,18007 > > ==> SECTION:03 <== 24000a24008,24009 > > ==> SECTION:04 <== ~$
Vimのdiff時の折り畳み機能を手っ取り早く使うには、vimdiffを起動します。
~$ vimdiff hoge hoge2
おっと、差分が出すぎて真っ赤になってしまいました。hoge2ファイルは、行頭にタブがあるため、全行差異が出るためです。hogeの方にタブを挿入して差分を最小にします。カーソルがhoge側のウィンドウにある状態で、これを実行します。
:%s/^\t// :diffu
タブを削除して、diffupdateをかけました。すると以下の画像のようになります。
5988行: Doe〜 とあるのが、折り畳まれている行です。このようにdiff時の折り畳み機能は、差分のない区間が折り畳まれます。
次はインデント時に折り畳む機能を使ってみます。下はhoge2のみを開いたときのVimの画像です。
折り畳みを機能させます。
:set fdm=indent
以下のように、見出し以外の部分であるインデントされた行(行頭にタブがある行)が折り畳まれます。
最後に、マーカーによる折り畳み機能です。
このブログのwordpressのデータベースにアクセスして、マーカーを仕込んだSELECT文を発行します。そして、その出力をVimへパイプします。
~$ mysql -uroot -se "SELECT '{{{:',post_date,post_title,post_content,'}}}' FROM wordpress_db.wp_posts where post_status='publish' order by post_date asc" -p | vi -
折り畳みを開くとこうなります。
コメント