[Vim問題]指定した範囲を大文字または小文字に変換する方法とは?

アイキャッチ:範囲指定で大文字化小文字化

この記事では、Vimでプラグインを使わずに「ビジュアルモードで大文字または小文字に変換」する方法について、ご紹介します。

[解答] ビジュアルモードで u/U

Vimキーバインド1. 大文字を小文字に変換する

(ビジュアルモードで範囲を指定した後)
 U

ビジュアルモード(C-v もしくは v で起動)で、変換したい範囲を選択した後、上記のキーを入力します。

Upper の頭文字と覚えましょう。

Vimキーバインド2. 小文字を大文字に変換する

(ビジュアルモードで) u

同じくビジュアルモード(C-v もしくは v で起動)で、変換したい範囲を選択した後、上記のキーを入力します。

先程の Upper の逆だから、小文字の u と覚えましょう。ちなみに、 Shiftキーと一緒に行う操作は逆の意味になることが多いです。

注意

「大文字または小文字に変換」する方法は、1キーで操作できて簡単ですが、1キーであるが故に下記の誤操作になりがちです。

(ノーマルモードで)u  → アンドゥ
(ノーマルモードで)U  →  行単位のアンドゥ 

実行する都度、ビジュアルモードかを確認してから実行しましょう。

補足

Vimmer 御用達の オペレータ+モーションでの変換も可能です。

gu{モーション} (モーションで指定した範囲を小文字にする)
gU{モーション} (モーションで指定した範囲を大文字にする)

主な例は次のようになります。

  • gul 1文字を小文字にする
  • gUl 1文字を大文字にする
  • gu$ 行末まですべて小文字にする
  • gU$ 行末まですべて大文字にする
  • gu0 行頭まですべて小文字にする
  • gU0 行頭まですべて大文字にする
  • guw 次の単語まですべて小文字にする
  • gUw 次の単語まですべて大文字にする
  • gu2w 次の2単語まですべて小文字にする
  • gU3w 次の3単語まですべて大文字にする
  • gufz 次の文字 z まですべて小文字にする
  • gUga 次の文字 a まですべて小文字にする

次のようにテキストオブジェクトでも構いません。

  • guiw カーソルのあるテキストオブジェクトをすべて小文字にする
  • gUiw カーソルのあるテキストオブジェクトをすべて大文字にする

直感的にはビジュアルモードの方が覚えやすいですが、使いやすさや素早さではこちらの方が圧倒的です。ぜひ覚えましょう。

Vimコマンドの補足情報

Vimコマンドの特徴

  • 利用頻度[star rate=4]
  • 便利さ[star rate=3]
  • 覚え易さ[star rate=4]

関連するVimヘルプ

Vimからは、下記のコマンドでヘルプを確認できます。

:help v_U (ビジュアルモードでの大文字化)
:help v_u (ビジュアルモードでの小文字化)

参考書籍

こちらの書籍が参考になります。

[temp id=3]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。