45
47

More than 5 years have passed since last update.

vim標準機能の折りたたみを駆使して、.vimrcを整理しよう

Last updated at Posted at 2017-01-22

はじめに

初めまして。vimを使うようになってまだ2年ほどの若輩者です。
プログラムとかはすべてvimかvimキーバインドプラグインをいれたIDEで書いたり、自分用にvimrcを書いたりする程度にはvimが好きです。

プラグインも必要最低限のものだけ追加するようにしているのですが、色々機能を追加してvimrcが現在250行程度です。
世界のvim愛好家の方には遠く及ばない量ですが、それでもやや量が増えてきてしまい、一度整理する必要があると感じていました。

そこで、vimrcがゴチャゴチャしてしまうのを回避するための設定とかvimのコマンドについてここにメモ書き程度に残しておこうと思います。
使用している機能はvim標準の機能のみのはずなので、プラグインを追加で入れる必要はないはずです。

あと既出の記事でしたらすいません。

環境

Windows7
Vim7.4

1. 不要な設定を削除する

Webで見つけてとりあえず入れたりした設定で使ってないものは削除します。
プラグインも使ってない気がするものは、バッサリ削除します。
NeoBundleプラグインを入れているなら管理が楽になるのでオススメです。

2. 各種設定はグループでまとめる

本題です。似たような設定はグループで固めていきます。
「あの設定どこに書いたっけ?」といった混乱を回避するためです。
検索ジャンプしようにもコマンド名や設定名を忘れてしまったときのためでもあります。

このとき、Vim標準の設定とプラグインによる設定を明確に分離するようにします。
こうしておくと、プラグインをあとから抜いた時に、設定の消し忘れが発生しにくくなります。
私の場合でしたら次のように分離しています。

.vimrc
" プラグイン設定
" + Plugin1 - プラグインの説明
set hoge

" + Plugin2 - プラグインの説明
set foobar


" デフォルト機能設定
" + UI
colorscheme hoge

" + 保存
set hoge

" + 編集
set hoge

3. vimrc内でのマーカー折りたたみを有効にする

vimは標準で折りたたみ機能をサポートしています。
下記の設定をvimrc内に追加します。

au FileType vim setlocal foldmethod=marker

これでvim関連のファイルにのみにマーカーをセットして折りたたむことが可能になります。
マーカーは{{{で始まり、}}}で終わります。これは入れ子構造になっていても機能します。
折りたたみに関連したコマンドで主要なものは次のとおりです。

zi : 折りたたみの有効無効の切り替え
zf : 折りたたみの作成(範囲選択の開始行と終了行の末尾にマーカーを追加する)
za : 折りたたみの開閉
zA : 折りたたみの再帰的開閉
zd : 折りたたみの削除
zR : バッファ内の全ての折りたたみを開く
zM : バッファ内の全ての折りたたみを閉じる

ただし、これを利用するとテキストファイル内にマーカーテキストが追加されてしまいます。
コメント文として追加されるため、エラーが発生することはありませんが、
気になる方は気になると思います。

またインデントによって自動で折りたたみを生成してくれるオプションもあります。

foldmethod=indent

これを利用するとメモ書などでのインデント整形で自動で折りたたみを生成してくれて、
なおかつ、テキスト内にマーカーなどが残らないので非常に綺麗です。
テキストファイルにのみ適用する場合は次の設定をvimrcに追加します。

au FileType text setlocal foldmethod=indent

4. マーカーを追加する

自分のvimrcにマーカーを追加していきます。
折りたたみたい範囲をヴィジュアルモードで選択し、zfでマーカーを追加します。
きちんと折りたためるかどうかはzaをタイプして確認します。

マーカーをつけたvimrcは次のようになります。
マーカーの終わりの++という記号は私が階層を把握しやすいようにつけたもので、
自動で追加されるものではありません。

.vimrc
" プラグイン設定"{{{
" + Plugin1 - プラグインの説明"{{{
set hoge
" + }}}
" + Plugin2 - プラグインの説明"{{{
set foobar
" + }}}
" }}}
" デフォルト機能設定"{{{
" + UI"{{{
colorscheme hoge
" + }}}
" + 保存"{{{
set hoge
" + }}}
" + 編集"{{{
set hoge
" + }}}
" }}}

5. vimrcを確認する

vimを起動しなおしてvimrcを確認します。
開いたときにきちんと折り畳みが生成されていれば成功です。
私の場合は次のようになるようにvimrcを記述しています。

image

とても見やすくなってますね。

プラグイン設定、デフォルト設定まで折りたたむとvimrcを開きなおすたびに
折りたたみを開く必要があるので、この辺は自分の好みに合わせて整理するといいと思います。

6. まとめ

vimの標準機能にはテキスト整形やいろんな見やすくする機能がいっぱいあります。
たとえばright, left, centerといったテキストの揃え位置を変更するコマンドや
今回紹介した折りたたみコマンドに、矩形選択などとても便利な機能があります。

こういった機能を知ってからvimのREADME.txtを見てみると
中央揃えや右揃えのテキストはvimの標準機能で書いてたのかな?
とか
シンプルにインデントのみでREADMEを書いているのはもしかしたらインデントで折りたたみを使うためなのかな?
とか
いろいろと新しい発見ができて楽しいものがあります。

まぁそんな感じで、つたない説明でしたが、vimユーザの誰かのお役に立てれば幸いです。

参考文献

Vimテクニックバイブル - プラグイン紹介が大半を占めていますが、標準機能で自分の知らなかった機能や使い方も載っていて参考になります。

45
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
47