Vim で大文字と小文字を変換する

Vim では Uu と入力するだけで、テキストの大文字と小文字を変換することができます。

ビジュアルモードでの操作

  • U … 選択した範囲を大文字に変換
  • u … 選択した範囲を小文字に変換
  • ~ … 選択した範囲の大文字と小文字を入れ替え

例えば、Shift-V で、行を選択しておいて U と入力すれば、その行全体のアルファベットを大文字にすることができます。

ノーマルモードでの操作

  • gUU / guu … カーソル行すべての文字を大文字/小文字に変換する
  • gUiw / guiw … カーソル位置の単語を大文字/小文字に変換
  • ~ … カーソル位置の一文字の大文字/小文字を反転させる
  • g~~ … カーソル行すべての文字の大文字/小文字を反転させる

若干難しい組み合わせのように見えますが、ノーマルモードでは、gUgu の後に置換範囲を入力することで、その範囲を大文字、小文字に変換することができます。

例えば、置換範囲として iw を入力すると (guiw)、カーソル下の単語を変換対象とすることができます。 置換範囲として移動コマンドを入力することもできるため、例えば gu$ と入力すれば、カーソル位置から行末 ($) までを小文字に変換することができます。

ただし、どちらかというと、大文字と小文字の置換は、ビジュアルモードで範囲選択を行ってから uU と入力する方がわかりやすいです(しかもタイプ数はほぼ同じ)。 例えば、カーソル下の単語を大文字に変換するには、viw で単語選択してから、U と入力すれば OK です。