Vim操作方法

[Vim問題] ファイル内の英数字を全て大文字に変更する方法は?

この記事では、Vimでプラグインを使わずに「ファイル内の英数字を全て大文字に変更する」ための方法について、ご紹介します。

[解答] ggVG U または gg gU G

パターンA. ビジュアルモードを駆使する

(ノーマルモード)
:ggVG U

全選択した状態のビジュアルモードへ移行した後、大文字へ変換する手法です。

ビジュアルモードを使った大文字変換
ビジュアルモードを使った大文字変換

こちらは直感的で、ビジュアルモードで選択する範囲を変えれば、範囲を変更することができます。

パターンB. モーションとオペレータを駆使する

(ノーマルモード)
:gg gU G

こちらの方が Vimmer らしい方法かも知れません。

最初の行へ移動後、大文字へ変換するオペレータを指定し、ファイルの最後尾へ移動する手順です。

オペレーションを使った大文字変換
オペレーションを使った大文字変換

こちらは実行時のカーソル位置を起点に範囲指定するオペレータ gU がポイントです。

このようなモーション+オペレータの組み合わせこそ、Vimmer らしいと言われることが多いようです。

おまけ. 同じ行のテキストを全て大文字にする方法

パターンA. ビジュアルモードを駆使する

(ノーマルモード)
0v$U

行頭移動、ビジュアルモード化、行末移動、大文字変換の流れです。

いくつかの動作の組み合わせになるので、考え方がちょっと煩わしいですね。

パターンB. モーションとオペレータを駆使する

(ノーマルモード)
gUgU

または

(ノーマルモード)
gUU

こちらの方がスマートで Vimmer らしいかもしれませんね。

様々なパターンをぜひ覚えましょう。

この変換パターンの補足情報

  • 利用頻度3.0
  • 便利さ3.0
  • 覚え易さ1.0

関連するVimヘルプ

紹介した方法のうち、gUオペレータについては下記のようにヘルプでは記載されています。

gU uppercase
gU{motion}      {motion} のテキストを大文字にする。
                        例: :map! <C-F> <Esc>gUiw`]a
                        これは挿入モードで機能する。カーソルの前の単語を大文字
                        にするときに CTRL-F を打ち込めばよい。単語は小文字で入
                        力し、後から大文字にする方が楽だ。

gUgU                                                    gUgU gUU
gUU                  現在行を大文字にする。

change – Vim日本語ドキュメント

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

:help gU

ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。

参考書籍

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


Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。


こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。

Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。

プロフィール
管理人
Vim太郎

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

\フォローする/
\ シェアする /
\フォローする/
関連記事
Vim入門
タイトルとURLをコピーしました