この記事では、Vimでプラグインを使わずに「ファイル内の英数字を全て大文字に変更する」ための方法について、ご紹介します。
[解答] ggVG U または gg gU G
パターンA. ビジュアルモードを駆使する
(ノーマルモード)
:ggVG U
全選択した状態のビジュアルモードへ移行した後、大文字へ変換する手法です。

こちらは直感的で、ビジュアルモードで選択する範囲を変えれば、範囲を変更することができます。
パターンB. モーションとオペレータを駆使する
(ノーマルモード)
:gg gU G
こちらの方が Vimmer らしい方法かも知れません。
最初の行へ移動後、大文字へ変換するオペレータを指定し、ファイルの最後尾へ移動する手順です。

こちらは実行時のカーソル位置を起点に範囲指定するオペレータ gU がポイントです。
このようなモーション+オペレータの組み合わせこそ、Vimmer らしいと言われることが多いようです。
おまけ. 同じ行のテキストを全て大文字にする方法
パターンA. ビジュアルモードを駆使する
(ノーマルモード)
0v$U
行頭移動、ビジュアルモード化、行末移動、大文字変換の流れです。
いくつかの動作の組み合わせになるので、考え方がちょっと煩わしいですね。
パターンB. モーションとオペレータを駆使する
(ノーマルモード)
gUgU
または
(ノーマルモード)
gUU
こちらの方がスマートで Vimmer らしいかもしれませんね。
様々なパターンをぜひ覚えましょう。
この変換パターンの補足情報
- 利用頻度[star rate=3]
- 便利さ[star rate=3]
- 覚え易さ[star rate=1]
関連するVimヘルプ
紹介した方法のうち、gUオペレータについては下記のようにヘルプでは記載されています。
gU uppercase
change – Vim日本語ドキュメント
gU{motion} {motion} のテキストを大文字にする。
例: :map! <C-F> <Esc>gUiw`]a
これは挿入モードで機能する。カーソルの前の単語を大文字
にするときに CTRL-F を打ち込めばよい。単語は小文字で入
力し、後から大文字にする方が楽だ。
gUgU gUgU gUU
gUU 現在行を大文字にする。
こちらは下記のコマンドでヘルプを確認できます。
:help gU
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
[temp id=3]