vim-users.jp

Hack #166: ローマ字の大文字/小文字を変換する

Posted at 2010/08/08
このエントリーをはてなブックマークに追加

ローマ字の大文字と小文字を変換する機会は意外に多いです。なので、Vim にはこれを行うための便利な機能があります。

~

~ を押すと、カーソル下のローマ字の大文字/小文字を相互に変換します。大文字は小文字に、小文字は大文字になります。この際、カーソルを右に進めます。 [count] を指定することで複数の文字を同時に変換することができます。変換は一括で大文字/小文字にするのではなく、文字単位で作用します。つまり VimHack は vIMhACK になります。

gu gU g~

これらはオペレータで、対象に対してそれぞれ、gu は小文字への変換を、gU は大文字への変換を、g~ は大文字/小文字の相互変換を実行します。 例えば、現在のカーソルのある単語を全て大文字にしたい場合は gUiw です。 また、yy などと同様に行に対して動作する gugu guu gUgU gUU g~g~ g~~ があります。

Visual mode での u U ~

これらは Visual mode では g なしで動作します。

'tildeop'

'tildeop' オプションをオンにすると、~ はオペレータに変化します。g~ を頻繁に使う場合には便利でしょう。

正規表現

もっと複雑な変換を行いたい場合もあるでしょう。正規表現で置換する際、結果の大文字/小文字を指定することができます。 置換後のパターンに u があると、次の文字は大文字になります。l があると小文字になります。

:s/\w\+/\u\0/g
"bram moolenaar" → "Bram Moolenaar"

また、U や L があると、E が出現するまでそれぞれ大文字/小文字に変換します。

thinca

もどる
blog comments powered by Disqus