エディタは何を使っていますか?
僕は作業効率をあげるためにVimを使っています。
一般のエディタと比べるとちょっと特殊なVimの使い方を簡単にまとめました。
今回は文字列操作関係です。
前回はこちら

挿入モードにする
テキスト入力をするために、挿入モードにします。
「World
」の「r
」にカーソルがある場合
echo "Hello World!";
^
[a
]と入力すると、カーソルの直後に入力することができます。
[a]
echo "Hello Wor|ld!";
^
[i
]と入力すると、カーソルの直前に入力することができます。
[i]
echo "Hello Wo|rld!";
^
[o
]と入力すると、直後に行を追加して入力することができます。
[o]
echo "Hello World!";
|
[O
]と入力すると、直前に行を追加して入力することができます。
[O]
|
echo "Hello World!";
1文字操作
1文字だけ削除
[x
]と入力すると、カーソル上の1文字だけ削除します。
echo "Hello World!";
^
[x]
echo "Hello Word!";
[X
]と入力すると、カーソル上の左1文字だけ削除します。
echo "Hello World!";
^
[X]
echo "Hello Wold!";
[s
]と入力すると、カーソル上の1文字だけ削除して、挿入モードに入ります。
echo "Hello World!";
^
[s]
echo "Hello Wor|d!";
^
1文字だけ置換
[r<文字>
]と入力すると、カーソル位置の文字を<文字>に置き換えます。
echo "Hello World!";
^
[rw]
echo "Hello world!";
^
オペレータ
[d]オペレータ
[d
]は削除を表すオペレータです。
オペレータの後にモーションを追加することで、削除の挙動が変わります。
[dd
]とオペレータを2回繰り返すと、行を削除します。
<?php
echo "Hello World!";
^
?>
[dd]
<?php
?>
^
[dw
]と入力すると、カーソル位置から1単語分だけ削除します。
echo "Hello World!";
^
[dw]
echo "Hello Wo!";
^
[diw
]と入力すると、カーソル位置にある1単語分だけ削除します。
echo "Hello World!";
^
[diw]
echo "Hello !";
^
[df<文字>
]と入力すると、カーソル位置から最初の<文字>があるところまで削除します。
echo "Hello World!";
^
[dfr]
echo "Helld!";
^
[d^
]と入力すると、カーソル位置から左側を削除します。
echo "Hello World!";
^
[d^]
World!";
^
[d$
]と入力すると、カーソル位置から右側を削除します。
echo "Hello World!";
^
[d$]
echo "Hello
^
[c]オペレータ
[c
]は削除して挿入モードに入るオペレータです。
オペレータの後にモーションを追加することで、挙動が変わります。
[cc
]とオペレータを2回繰り返すと、行を削除し挿入モードに入ります。
<?php
echo "Hello World!";
^
?>
[cc]
<?php
|
^
?>
[cw
]と入力すると、カーソル位置から1単語分だけ削除し挿入モードに入ります。
echo "Hello World!";
^
[cw]
echo "Hello Wo|!";
^
[ciw
]と入力すると、カーソル位置にある1単語分だけ削除し挿入モードに入ります。
echo "Hello World!";
^
[ciw]
echo "Hello |!";
^
[cf<文字>
]と入力すると、カーソル位置から最初の<文字>があるところまで削除し挿入モードに入ります。
echo "Hello World!";
^
[cfr]
echo "Hel|ld!";
^
[c^
]と入力すると、カーソル位置から左側を削除し挿入モードに入ります。
echo "Hello World!";
^
[c^]
|World!";
^
[c$
]と入力すると、カーソル位置から右側を削除し挿入モードに入ります。
echo "Hello World!";
^
[c$]
echo "Hello |
^
[y]オペレータ
[y
]はヤンク(コピー)するオペレータです。
オペレータの後にモーションを追加することで、ヤンクの挙動が変わります。
[yy
]とオペレータを2回繰り返すと、行をヤンクします。
echo "Hello World!";
^^^^^^^^^^^^^^^^^^^^^^^^
[yw
]と入力すると、カーソル位置から1単語分だけヤンクします。
echo "Hello World!";
^
[yw]
echo "Hello World!";
^^^
[yiw
]と入力すると、カーソル位置にある1単語分だけヤンクします。
echo "Hello World!";
^
[yiw]
echo "Hello World!";
^^^^^
[yf<文字>
]と入力すると、カーソル位置から最初の<文字>があるところまでヤンクします。
echo "Hello World!";
^
[yfr]
echo "Hello World!";
^^^^^^
[y^
]と入力すると、カーソル位置から左側をヤンクします。
echo "Hello World!";
^
[y^]
echo "Hello World!";
^^^^^^^^^^^^
[y$
]と入力すると、カーソル位置から右側をヤンクします。
echo "Hello World!";
^
[y$]
echo "Hello World!";
^^^^^^^^
貼り付け
[p
]は[d
][c
][y
]で削除やヤンクした文字列をペーストするコマンドです。
[dd
][cc
][yy
]の場合、[p
]ならカーソルの下の行に、[P
]ならカーソルの上の行にペーストします。
←[P]上の行にペースト
echo "Hello World!";
←[p]下の方にペースト
文字列コピー・削除などの場合、[p
]ならカーソルの文字の次に、[P
]ならカーソルの文字の前にペーストします。
echo "Hello World!";
^
[yiw]で[World]がヤンクされる
echo "Hello World!";
^
[p]
echo "HelWorldlo World!";
[P]
echo "HeWorldllo World!";
さいごに
文字の操作はこれくらいを覚えておくだけですごく簡単にできます。
まだまだいろいろなコマンドがあるので、また機会があれば紹介したいと思います。
コメント
[…] Vimの基本的な使い方②文字列操作【初心者用】 […]