vimで効率的にコードを書くための小技

http://d.hatena.ne.jp/bonar/20070415/1176651778

根っからのviユーザなので「何をいまさら...」と思いながら見てみたのですが、結構知らない機能ってあるんですね。どれもこれも便利そうなのですが、その中でも折りたたみはかなり便利で早速今日から使えそうです。折りたたみ機能大好きなんです。


私が開発に携わって初めて触ったIDEDelphiだったためか、今でも一番好きな開発環境はDelphiです。キーバインドでviを選べないという点は不満ですが、それ以外は全然問題ありません。終了時に不意に出てくるアプリケーションエラー(半分は自分が原因)もデバッグしている時に誤ってF12キーを押してしまいCPUウィンドウが出てきて固まるのも全然平気です。むしろそこがかわいいとすら思います。
それほど大好きなDelphiが唯一VS.NET(2003,2005)に劣っているのは、#region #endregionだと思っているのです。この記法は#regionから#endregionまでを折りたためるというたったこれだけの機能なのですがこれがホント素晴らしい。これがあると私のつぎはぎソースもあっという間にキレイに見えるから不思議です。

↓これを折りたたむと

using ( StreamWriter sw = new StreamWriter(@"C:\hogehoge.txt") )
{
  #region データ書き込み
  // データ出力(1) //
  sw.WriteLine(xxxx);

  // データ出力(2) //
  sw.WriteLine(yyyy);

  // データ出力(3) //
  sw.WriteLine(zzzz);

  #endregion
}


↓こうなります。

using ( StreamWriter sw = new StreamWriter(@"C:\hogehoge.txt") )
{
  データ書き込み
}

# ↑うまく書けなかった... orz

コードを一見すっきりさせる事で、余計な部分に気を回さなくてもよくなるような気にさせてくれるのです。見たくないものを積極的に見なくてもいいようにさせてくれるのはとてもいいです。


似たようなものとしてthunderbirdのQuoteCollapse という拡張があります。これはメールの引用文を折りたたんでくれる便利拡張です。仕事でメールをする時は全文引用をする事もされることも多いので、気付けばどこが本文か分からないようなそんなメールをやり取りしている事がよくあります。メールきたらまずどこが本文か見分けないといけないのって面倒なんですよ。
Thunderbirdを使う理由の30%くらいはこの拡張だと言ったらさすがに言い過ぎですが、でも結構大きなファクターではあります。

https://addons.mozilla.org/ja/firefox/addon/347?application=thunderbird&id=347


というわけでただでさえ愛してやまないviに折りたたみ機能が付いてしまったので、一生viからは離れられません。