Astroの光線のサムネイル。

pubDate: 2024-03-04

author: sakakibara

vim

インサートモード

インサートモード

白状しよう。ノーマルモードが一番大事だ。 故に、インサートモードの機能的について言及することは少ない。

インサートモードへ移行

インサートモードへ移行するには基本的にiを押すが、他にもいくつかの方法がある。

commanddescription
iカーソルの位置にインサート
I行の先頭にインサート
aカーソルの次の位置にインサート
A行の末尾にインサート
o次の行にインサート
O前の行にインサート
sカーソルの位置の文字を削除しインサート
S行を削除しインサート
c{motion}{motion}のテキストを削除してインサート
Cカーソルから行末まで削除してインサート

インサートモードからノーマルモードへ移行するにはESCCtrl+[を押す。

レジスタの利用

インサートモード中にコピーした文字をペーストするためにいったんノーマルモードに移行するのは面倒だ。 実はノーマルモードに移行せずにレジスタを利用することができる。

インサートモード中でCtrl+rを押せばよいのだ。

この動画ではCtrl+r "を押すことで無名レジスタの内容(yiwでコピーした単語)がペーストされている。

インサートモード中ではCtrl+r{register}を押すと、指定したレジスタの文字が入力される。 いちいちノーマルモードにもどっているならそれはあまり効率的ではない。これからはCtrl+rを使おう。

また、意外と便利なのがExpress registerだ。 割り算は整数で閉じているが、その他の加減乗除については浮動小数点数で閉じている。

抜刀術

以下はインサートモードの奥義である。

Ctrl+oを押すことで、インサートモードを一瞬置き去りにし、ノーマルモードのコマンドを実行し、再びインサートモードに戻ることができる。

ただし、一振りだけだ。
この一瞬の状態を ノーマルインサートモード と呼ぶ。
通常、ここには{motion}かdy, pなどのコマンドを入力する。

使いこなすには、インサートモードよりも、むしろノーマルモードに熟練している必要がある。