2011年7月28日木曜日

初VimScript

今日もバイトに行ってきました。
最近はバイトに行く前と帰ってきてからが自由時間というわけでいろいろやってます。
バイトでもプライベートでも最近はよくコーディングしているのですが、
そのときに煩わしいことがありました。
phpのソースをネットから拾ってくると、やたら「"」を使っているのです。
自分はこれが気に食わないので、「"」と「'」を正しい使い分けに直すのですが、
混在してると置換もしづらいので一つ一つ直したりします。
そこで、簡単に書き換えられるスクリプトを書いてみました。
以前、VimScriptに一度挑戦しましたが入門ページみたいなのを読んでもさっぱりわからなかったのでやる気を喪失していました。
しかし、数日前に調べていたらもっとわかりやすいページがあって何となく雰囲気も掴めたので実際に書いてみることにしました。
初ということで今回のは短いです。
function ExUpLower()
    let a:currentChar = getline(".")[col(".")-1]
    if(match(a:currentChar,'[a-z]') == 0)
        execute "normal r".toupper(a:currentChar)."l"
    elseif(match(a:currentChar,'[A-Z]')==0)
        execute "normal r".tolower(a:currentChar)."l"
    elseif(match(a:currentChar,'\"')==0)
        execute "normal r'l"
    elseif(match(a:currentChar,"\'")==0)
        execute 'normal r"l'
    else
        execute 'normal l'
    endif
endfunction

nnoremap ~ :call ExUpLower()

Vimには~を押すと大文字小文字を相互変換してくれる機能があるのですが、
それを「'」と「"」にも機能するようにしました。
executeを見つけるまでにやたら時間がかかりました。
もっとスマートなやり方があると思います。
そもそもこんなの欲しがる人は自分以外には居なさそう。
マッピングの方法もよくわかってません。
勉強あるのみですね。
monday.vim : Ctrl-a、Ctrl-xで曜日、月をループ (+他の用途への応用)のソースを参考にしました。

0 件のコメント:

コメントを投稿