技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

Vimのオペレーターとモーションについて勉強したのでメモ。オペレーターとモーションの説明はこちらの記事が分かりやすかった。合わせてこちらの記事も読むと更に理解が深まると思う。
 

オペレーターとモーションについて

ノーマルモード中にdwという操作を行うとカーソル下の単語を削除することができるが、このdwのうちのdがオペレーターで、wがモーションとなる。モーションは単体で使うとカーソル移動となるが、オペレーターと一緒に使うと、現在のカーソル位置から移動後のカーソル位置に対して変更などを行うことができる。
 
Vimの:help motionも読んでおくと理解の助けになる。
 

オペレーターの一覧

オペレーター 機能 備考 覚え方
y ヤンク Vimではコピーの事をヤンクと言う。対象のテキストがレジスタに格納される。 yank
d 削除
切り取り
Vimでは削除と切り取りが同じコマンドになっており、削除と同時に、削除したテキストがレジスタ(クリップボードのようなもの)に格納されて、貼り付け(Put)できるようになる。 delete
c 変更 cを使うと、テキストを削除して、その場所からインサートモードを開始してテキストを挿入することが出来る。
d(削除)とi(挿入)の組み合わせに近いが、c(変更)を使うと、後で.(ピリオド)コマンドで2つをまとめて繰り返すことが出来ます。
change
g カーソルの移動 gを使うと、カーソルの移動を行うことが出来る。モーションによって移動位置が変わる。 go

 

実用的なオペレーターとモーションの組み合わせ

dw カーソルの乗っている単語を削除する。
cw カーソルの乗っている単語を削除して挿入モードに入る。
yw カーソルの乗っている単語をヤンクする。
gUw ノーマルモードの状態で入力する。カーソルの乗っている単語を大文字(Upper Case)に変更する。
guw ノーマルモードの状態で入力する。カーソル上の単語を小文字に変更する。
gv ノーマルモードの状態で入力する。直前にビジュアルモードで選択していた範囲を選択し直す。
g; ノーマルモードの状態で入力する。直前に編集した箇所にカーソルを移動する。

 

覚えておきたい実践的なコンボ

置換検索をするには:%s/foo/bar/gcが一般的だが、もっと簡単に置換検索する方法があった。
 

  1. /fooでfooを検索する。(fooにカーソルを合わせて*でも検索可能)
  2. cwbarでfooをbarに変更する。
  3. nで検索の次の候補にカーソルを移動する。
  4. .で前回の変更を繰り返す。

 
以降、n.n.n.n.……と打ち込んでいくこと置換検索が可能である。
 
 
以上
 
 
参考
今更聞けないvimの話
Vim のテキスト編集 〜基礎編〜

Vimのテキストオブジェクトの扱い方 arrow-right
Next post

arrow-left vim-surroundの使い方
Previous post

コメントを残す