← Vim研究所

Vimの単語移動8種類 w/b/e/geとW/B/E/gEの違い

2019-05-24 公開 ・ 更新: 2026-08-05

vim-config.jsonのような記号混じりの文字列でwを押したら、思ったより手前で止まってしまいました。単語の区切り方には2つの流儀があり、これを知らないと単語移動が思い通りに動きません。

目次(6項目)
キーこれだけ覚える
w次の単語の先頭へ
b前の単語の先頭へ戻る
e / ge単語末尾へ進む / 戻る
W / B / E / gE大文字版:空白でしか区切らない

基本の4つ

キー動作
w次の単語の先頭へ進む
b前の単語の先頭へ戻る
e今の(または次の)単語の末尾へ進む
ge前の単語の末尾へ戻る

先頭/末尾×進む/戻るの組み合わせで4種類になります。geだけ見慣れない形ですが、「go end backward」のイメージで覚えると分かりやすいです。

大文字版:記号を無視する4つ

キー動作
W次の単語(記号無視)の先頭へ進む
B前の単語(記号無視)の先頭へ戻る
E今の(または次の)単語(記号無視)の末尾へ進む
gE前の単語(記号無視)の末尾へ戻る

ここが最初の疑問に対する答えになります。小文字のwvim-config.jsonvim-config.jsonのように記号ごとに区切って移動するのに対し、大文字のWは空白でしか区切らず、vim-config.json全体を1つの単語として一気に飛び越えます。

BEFORE
vim-config.json
^ カーソル
w
AFTER
vim-config.json
   ^ カーソル

wを1回押しただけで、記号1文字の-自体が独立した単語として扱われてカーソルが止まります。

アンダースコアだけは例外

-.のような記号は区切りになりますが、_(アンダースコア)だけは例外でキーワード文字の一部とみなされ、区切りになりません。snake_caseのような命名ではwを押しても止まらず一気に飛び越えます。

文字単語の区切りになるか
_(アンダースコア)ならない('iskeyword'に含まれる)
- . ( ) など記号全般なる(1文字ごとに単語として区切られる)

ビジュアルモードでも同じキーが使える

ここまで紹介したキーはすべてビジュアルモードでも同じ意味で動きます。v3wのように選択範囲を単語単位で広げていくこともできるので、単語の切れ目を目で確認しながら選択したいときに便利です。ノーマルモードでオペレータと組み合わせるか、ビジュアルモードで範囲を目視してから操作するかは、状況に応じて使い分けて構いません。

使い分けの目安

場面使うキー
ハイフンやドット区切りの一部だけを細かく操作したい小文字(w/b/e
URLやファイルパスを記号ごと一気に飛ばしたい大文字(W/B/E

コードを書くときは小文字を多用し、自然文やログの中を大きく移動したいときは大文字に切り替える、という使い分けが実用的です。

要点:小文字は記号も区切りとして認識します(ただし_は例外)。大文字は空白だけで区切ります。プログラミング中の細かい移動は小文字、記号混じりの塊をまとめて飛ばしたいときは大文字を使うと動きが直感に合います。
使ってみて

ケバブケースのCSSクラス名を編集しているとき、wだとハイフンの位置でいちいち止まってしまい思ったより移動が細かすぎると感じたことがあります。大文字のWに切り替えたら一気に飛び越えられて、場面によって使い分ける意味がようやく体感できました。逆にスネークケースの変数名はwで止まらず素通りしてしまい、最初は「区切ってくれない」と戸惑ったことも覚えています。今ではコードを書くときは小文字、Markdownやログを読むときは大文字、と無意識に切り替えられるようになりました。

オペレータと組み合わせる

dw    " 次の単語の頭まで削除
d3w   " 3単語分まとめて削除
cW    " 記号込みの単語を変更

単語移動はそれ単体で使うより、dcのようなオペレータと組み合わせて初めて真価を発揮します。移動の感覚が身についたら、次はオペレータとの組み合わせに慣れていくと上達が早いです。

まとめ

単語移動は記号の扱い方が小文字と大文字で違うだけで、覚える形自体は同じパターンの繰り返しです。1文字単位の移動をあわせて使いたい場合はf/Fによる文字検索移動も参照してください。

← Vim研究所 トップへ戻る