概要
よく忘れるのでここにメモメモ。。。知っているとちょっと楽できます。
vimの初心者向けの記事とかでは、よく 挿入モード のコマンドとして
- i or I
- a or A
が書かれていますが、同じ用途で使えるコマンドとして
- c or C
- s or S
というのもあります。
んで、何気にこちらが便利です。
以下のような動きとなります。
- c は、その後にモーションをつけて、指定した分を削除してから挿入モードに入る。
- カーソルがある文字を削除して挿入モードに入りたい場合は cl 。
- Cは、現在カーソルがあるところから行末までを削除して挿入モードに入る。
- s は、前にカウントを付与して、指定した文字数分を削除してから挿入モードに入る
- デフォルトが 1s となるので、これは cl と同じことになる。
- Sは、前にカウントを付与して、指定した行数を削除してから挿入モードに入る
- Cと違って、行末までではなく行全体を削除してくれる
i, a と c, s の一番の違いは何らかの部分を削除してから挿入モードに入ってくれる点です。
新規で入力したい場合は i, a (I, A) がいいですが、もう行が存在している部分で、既存の部分を一部削除してそのままコードを書いていきたい場合に c, s (C, S) をよく使います。
例えば、以下のようなコードがあるとして(コードに意味はありません)
今、13行目にカーソルがいます。この部分のコードを修正したいので、この行を消して新たに書きたい場合
i, a を使う場合だと、最初に dd とかして行を削除して、その後 i なり a なりで挿入モードに入って書いたりします。
これが、c, s の使い方だと S 一発で
行が削除されて即挿入モードになります。
また、元のコードで 左辺 の ch って名前を変えたい場合でも cw って打つと
と単語が削除されて即挿入モードに入れます。
参考情報
過去の記事については、以下のページからご参照下さい。
いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。