[Vim問題] cw と dw の違いは?

この記事は約5分で読めます。

この記事では、Vim / neovim で混同しやすいキーバインドの1つ「cw と dw」について、詳しく掘り下げてご紹介します。

スポンサーリンク

[解答] 単語削除後のモード、スペースの扱い

次のような明確な差があります。

  1. コマンド実行後はインサートモードなのが cwノーマルモードなのが dw
  2. 単語を削除した後、単語後の空白(スペース)を残すのが cw、空白(スペース)を消すのが dw。

1については、変更したいなら代わりの単語を入力する作業へ移りたいし、削除だけなら入力ではなく移動したいよね、というユーザーの自然な編集動作を反映させた動作です。

2については、英単語を変更するなら後ろのスペースはそのまま利用しますから、スペースは維持します。一方で、削除するのであれば単語の後ろのスペースも一緒に削除しなければ、不自然になってしまいます。

例えば、「test sentence」という2つの単語に対して、それぞれを実行してみます。

cw で test を one に変更する
cw で test を one に変更する
dw で test を削除する
dw で test を削除する

いずれも動作が分かると、非常に自然な違いになることがわかります。

なお、ここまで紹介した内容は、当然それぞれの操作の意味を理解できている必要があります。

Vimキーバインド1. 単語の変更

(ノーマルモード)
cw

こちらは変更を表すオペレータ c と単語単位の移動(モーション) w の組み合わせです。

Vimキーバインド2. 単語の削除

(ノーマルモード)
dw

こちらは削除を表すオペレータ d と単語単位の移動(モーション) w の組み合わせです。

移動(モーション)部分を変えれば、異なる範囲で同じように操作を応用できます。

細かい部分の違いになりますが、知っていると1〜2ステップ節約できます。

ぜひ覚えましょう。

日本語の文章でも使える?

実は、日本語でも同じように動作をしますが、次のように若干のクセがあるので注意が必要です。

  • 全角スペースと半角スペースは同じ扱い
  • ひらがな/カタカナ/漢字/記号がそれぞれ連続するテキスト=単語 と認識する(文法上の単語ではない)
日本語で単語を変更する
日本語で単語を変更する

基本的に、ブログ記事などの長い文章を書く場合にはとても役立つ動作だと思います。

漢字の送り仮名を判定できないのは致命的ですが、日本語ワープロソフトではないので、仕方がないかもしれませんね。惜しい。

このVimコマンドの補足情報

  • 利用頻度4.0
  • 便利さ4.0
  • 覚え易さ2.0

関連するVimヘルプ

Vimのヘルプでは、それぞれ次のように記載されています。

cw cW
特別な場合: “cw” と “cW” は、カーソルが単語の上にあるとき、単語のあとにつづく
空白を含めず、単語の末尾までを変更する(“ce” と “cE” と同じ働きをする)。これは
Vimが “cw” を単語の変更(change-word)として解釈し、また「単語」にはあとに続く空
白は含まれないからである。 {Vi: あとに空白が続く空白上での “cw” は、最初の空白
のみを変更する。これは多分バグである。”dw” は全ての空白を削除するからだ。とに
かく、Vi風に動作させるときには ‘cpoptions’ にフラグ ‘w’ を含めること}

“cw” の変更範囲に単語の後の空白も含めたいときは、次のマップを使うこと。
        :map cw dwiまたは “caw” を使う(aw を参照)。

:c:ch:change
:{range}c[hange][!]     テキストを行単位で別のテキストと置き換える。
                         “.” のみを含む行を打ち込むことで置換を終了する。
                         {range} なしの場合、現在行のみを変更する。
                         [!]をつけると、このコマンドを実行するときだけ
‘autoindent’ をトグルする。

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

dw      カーソル位置から次の単語の先頭までを削除

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

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

:help cw
:help cW

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

Vimレベルがアップする情報源

Vimmerなら皆一度は読んでいバイブルたちです。貴方は読みましたか?

実践Vim 思考のスピードで編集しよう! (アスキー書籍)
古くて新しいUnixのエディタVim――このVimのエディタとしてのコア機能をマスターするた...

Vim/neovim関連の書籍で、もっとも評判が良い(気がする)書籍です。Vim基本動作に関するバイブルと読んでる人もいます。その高い評価は、Amazonのレビューを読んでも間違いありません。

 

Vimテクニックバイブル~作業効率をカイゼンする150の技
(概要)Vimは開発者やサーバ管理者だけでなく,幅広いユーザをカバーする強力な̌...

こちらもVim関連の書籍で評価が高い書籍です。Vimを実践で使うノウハウが詰まっていますので、Vimmerなら一読する価値アリです。

 

Vim script テクニックバイブル ~Vim使いの魔法の杖 | Vim scriptサポーターズ |本 | 通販 | Amazon
AmazonでVim scriptサポーターズのVim script テクニックバイブル ~Vim使いの魔法の杖。アマゾンならポイント還元本が多数。Vim scriptサポーターズ作品ほか、お急ぎ便対象商品は当日お届けも可能。またVim script テクニックバイブル ~Vim使いの魔法の杖もアマゾン配送商品なら通常...

Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊。Vim力を伸ばすなら、一度は読んでおくべきかも知れません。

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

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

Vim 一郎をフォローする
Vim関連情報
Vim 一郎をフォローする
スポンサーリンク
関連記事
Vim入門
タイトルとURLをコピーしました