Vim で、Boost.PP を読みやすくする

みたいなやり取りがあって、Vimシンタックスハイライトを設定して、視覚的に【BOOST_PP】を消してみました。
ついでに、個人的に読みづらい【大文字→小文字】にも変更。
視覚的に変えているだけなので、実際のコードが変更されているわけではありません。

[_vimrc]

" BOOST_PP を消す
" とりあえず、filetype=cpp の場合に設定が有効になるように設定
autocmd Filetype cpp call <SID>boost_pp_syntax()
function! s:boost_pp_syntax()
    if exists("b:boost_pp_syntax")
        return
    endif
    let b:boost_pp_syntax=1

    " BOOST_PP_(+PP_)  を _ に変更して表示
    syntax match boost_pp /BOOST_PP_/ transparent conceal cchar=_
    syntax match pp /\<PP_/ transparent conceal cchar=_
    
    " 大文字→小文字に変更して表示
    " 速度が気になる場合は、以下をコメントアウト
    " ---- ここから ----
    let i = 0
    let a_z = "abcdefghijklmnopqrstuvwxyz"
    while i < strlen(a_z)
        let c = a_z[i]
        execute "syntax match ".c." /".toupper(c).
            \ "/ contains=boost_pp,pp transparent conceal cchar=".c
        let i += 1
    endwhile
    syntax match boost_pp /BOOST_PP_/ transparent conceal cchar=_
    syntax match pp /\<PP_/ transparent conceal cchar=_
    " ---- ここまで ----
    
    " おまけ、[] を λで表示
    " パースは適当
    syntax match lambda /[[]]/ transparent conceal cchar=λ
    
endfunction

[使い方]

コマンド 動作
set conceallevel=1 BOOST_PPを消す
set conceallevel=0 ハイライトを戻す

[比較してみる]


↓↓↓↓



↓↓↓↓

こんな感じです。
まぁコードリーディングする分にはいいんじゃないのかなーと。
個人的にかなり見やすくなったと思います。
あとハイライト回りの設定は結構適当なので、もしかしたらうまく変換されないかも。

[注意]

【大文字→小文字】に変換している部分はかなり強引に変換しているので、ぶっちゃけ重いです……重いです!!
気になるようなら _vimrc のソースからコメントアウトするなりして下さい。
むしろ、『こうした方がいい!!』みたいな意見があれば教えて教えて下さい!

[おまけ]

C++0xラムダ式も【λ】にしてみました。

まぁこれもあり…かな?
あとマルチバイト文字(λ)を設定しているので、_vimrc とソースコード文字コードが違っていると文字化けするので注意してください。