YAMLが長くなると、どこにいるかわからなくなるので設定した。

リンク先のfoldCCというプラグインを使うと、折りたたみの表示が改善され、折りたたまれた部分のインデントがわかりやすくなる。

また、:echo foldC#navi()をやると、カーソル位置の折りたたみの階層を表示してくれる。

例えば、こんな風に設定をする。

set foldtext=foldCC#foldtext()
set fillchars=vert:\|
let g:foldCCtext_head = ''
let g:foldCCtext_tail = 'printf(" %4d lines Lv%-2d", v:foldend-v:foldstart+1, v:foldlevel)'

nnoremap <Leader><C-g> :echo foldCC#navi()<CR>

上の部分が折りたたみの表示の設定部分で、下がカーソル位置の折り畳みの階層表示のキーマッピング。

あとは、yamlのfoldingの設定。

オリジナルのコードだと、yamlのシンタックスハイライトが何も効かなくなってしまったので、やっつけだけど修正した。

インストールして、YAMLファイル開いたらfoldmethodをsyntaxにするように設定すればおk。

augroup MyVimrc
    autocmd!
augroup END
autocmd MyVimrc FileType yaml setlocal foldmethod=syntax

例えば、YAML – Wikipedia, the free encyclopediaにあるサンプルを使うと

---
receipt:     Oz-Ware Purchase Invoice
date:        2012-08-06
customer:
    given:   Dorothy
    family:  Gale

items:
    - part_no:   A4786
      descrip:   Water Bucket (Filled)
      price:     1.47
      quantity:  4

    - part_no:   E1628
      descrip:   High Heeled "Ruby" Slippers
      size:      8
      price:     100.27
      quantity:  1

bill-to:  &id001
    street: |
            123 Tornado Alley
            Suite 16
    city:   East Centerville
    state:  KS

ship-to:  *id001

specialDelivery:  >
    Follow the Yellow Brick
    Road to the Emerald City.
    Pay no attention to the
    man behind the curtain.
...

が最大限折りたためれると、

---                                                              34 lines Lv1

一つ広げると

---
receipt:     Oz-Ware Purchase Invoice
date:        2012-08-06
customer:                                                         4 lines Lv2
items:                                                           12 lines Lv2
bill-to:  &id001                                                  7 lines Lv2
ship-to:  *id001                                                  2 lines Lv2
specialDelivery:  >                                               5 lines Lv2
...

さらに広げると

---
receipt:     Oz-Ware Purchase Invoice
date:        2012-08-06
customer:
    given:   Dorothy
    family:  Gale                                                 2 lines Lv3
items:
    - part_no:   A4786                                            5 lines Lv3
    - part_no:   E1628                                            6 lines Lv3
bill-to:  &id001
    street: |                                                     3 lines Lv3
    city:   East Centerville
    state:  KS                                                    2 lines Lv3
ship-to:  *id001

specialDelivery:  >
    Follow the Yellow Brick
    Road to the Emerald City.
    Pay no attention to the
    man behind the curtain.
...

な風になって、

items:
    - part_no:   A4786
      descrip:   Water Bucket (Filled)
    #

#上にカーソルがあるときに<Leader><C-g>を打つと

--- > items: > - part_no: A4786

と表示される。