Vim

2016/01/24

インサートモード
[i]現在選んでいる文字の一つ手前から入力する。
[a]現在選んでいる文字の一つ後ろから入力する。
[o]現在選んでいる行の一つ下のに一行挿入して入力する。

基本コマンド
[u]操作履歴を一つ前に戻す(undo)
[Ctrl][r]操作履歴を一つ次に進める(redo)
[.]直前の入力操作を繰り返す。

カーソルの移動
[^]カーソルを行頭に移動
[$]カーソルを行末に移動
[-]1行上の行頭に移動
[+], [Enter]カーソルを1行下の行頭に移動
[H]カーソルを画面内先頭に移動
[L]カーソルを画面内末尾行に移動
[G]カーソルをファイル末尾へ移動
[M]カーソルを画面中央行に移動
[%]カーソルを対応するかっこに移動
※カーソル移動コマンドの前に数値を入力するとその分一気に動く。下記nは数値を入力するの意味。桁数は大きくても良い。
n[h]カーソルを左にnだけ移動
n[j]カーソルを下にnだけ移動
n[k]カーソルを上にnだけ移動
n[l]カーソルを右にnだけ移動
n[G]n行目に移動。ファイルの先頭なら [1][G]あるいは[g][g]と入力する。
n[b]カーソルを単語単位で左にnだけ移動
n[w]カーソルを単語単位で右にnだけ移動

ファイル操作
[:]を入力すると小さな入力エリアが下の方にできるので続きを入力後[Enter]を押すことで今度が成立する。
[:]w[Enter]現在のファイルに上書き保存
[:]q[Enter]viの終了
[:]q![Enter]viの強制終了
[:]wq[Enter]ファイルを保存して終了

文字の削除(カット),コピー,ペースト
削除
[d][d]カーソル行を削除
n[d][d]カーソルからn行を削除
[d][w]1単語 の削除
[d][0]行頭からカーソルの直前まで の削除
[d][$]カーソルの位置から行末まで の削除

コピー
[y][y], [Y]カーソル行をコピー
n[y][y], n[Y]カーソルからn行をコピー
[g][g][y][G]全行コピー
[:]n1[y]n2[Enter] n1行目からn2行をコピー
 ※n1[g][g]n2[y][y]と同じ。
  カーソルがコマンドモードから実行する方が、カーソル位置が動かない。
  n1[g][g]n2[y][y]だと、移動とコピーの組み合わせなので、移動時にカーソルが動く。
[y][w]1単語 のコピー
[y][0]行頭からカーソルの直前まで のコピー
[y][$]カーソルの位置から行末まで のコピー

ペースト
[p]カーソル位置後方にペースト
[P]カーソル位置前方にペースト
開始位置で[m][s]、終了位置で[m][e]を押して、[:]['s,'e ]の後に[y]でコピー、[d]で削除もできる。

検索・置換
[/]文字列[Enter]末尾に向かって検索
[?]文字列[Enter]先頭に向かって検索
[*]カーソル位置の単語を、末尾へ向かって検索
[#]カーソル位置の単語を、先頭へ向かって検索
[n]続きを検索
[N]逆向きに検索
検索で大文字/小文字を区別しない
 /検索文字列\c
 :set ic
 元に戻すには
 :set noic
[:]s/(置換前文字列)/(置換後文字列)/[Enter]
カーソル位置の行で、(置換前文字列)を(置換後文字列)に置換
[:]%s/(置換前文字列)/(置換後文字列)/[Enter]
(置換前文字列)を(置換後文字列)に一行中初めに該当したものを置換
[:]%s/(置換前文字列)/(置換後文字列)/g[Enter]
(置換前文字列)を(置換後文字列)に全置換
:n1,n2s/(置換前文字列)/(置換後文字列)/g[Enter]
(n1行目からn2行目までの間で、(置換前文字列)を(置換後文字列)に全置換
[:]%s/(置換前文字列)/(置換後文字列)/gc[Enter]
(置換前文字列)を(置換後文字列)に確認しながら全置換

その他
[J]カーソル位置とその次の行をスペース1つで結合する

-Linux