Vimのコマンドメモ。
-----------------
■終了・ファイル
コマンドライン引数で開くファイルを指定する。
:e ファイルを開く。
:q 終了
:q! 変更を破棄して終了
ZZ 上書き&終了 or :wq
:w ファイル名を付けて保存 or 上書き
■カーソル移動
h カーソルを左へ
j カーソルを下へ
k カーソルを上へ
l カーソルを右へ
+ カーソルを次の行へ or Enter
- カーソルを前の行へ
w 単語単位で右へ
b 単語単位で左へ
0 カーソルを行頭へ(数字のゼロ)
$ カーソルを行末へ
^ カーソルを行最初の単語の1文字目へ
C-d 半画面下へスクロール
C-u 半画面上へスクロール
C-f 1画面下へスクロール
C-b 1画面上へスクロール
:[0-9]+ 指定行へ移動
gg ファイルの先頭へ
G 最終行へ
■画面分割
:sp ウィンドウを分割。あるファイルを開いた状態で「sp: ファイル名」とすると、そのファイルを開いて分割。
C-w w ウィンドウを移動
:close 現在のウィンドウを閉じる。
:only 現在のウィンドウ以外を閉じる。
■挿入モード
i カーソル位置で挿入モード
a カーソルの1文字後で挿入モード
o カーソル行の下に新しい行を追加し挿入モード
r カーソル位置の文字を1文字変更。挿入モードにはならない
cc 行全体をいったん削除し変更する。
c0 カーソルから行頭まで削除し変更。
c$ カーソルから行末まで削除し変更。
■削除
x カーソル位置の1文字削除。前に数字を入れるとその数字分削除。
dw カーソル位置から後ろの1単語削除
d0 カーソル位置から行頭まで削除
d$ カーソル位置から行末まで削除
dd カーソルがある行を削除
[0-9]+dl カーソル位置から文字数分削除
※ヤンクバッファにたまる。つまりWinの「切り取り」と同じ。
■コピー(ヤンク)&ペースト
yw カーソル位置から後ろの単語をコピー
y0 カーソル位置から行頭までコピー
y$ カーソル位置から行末までコピー
yy カーソル行をコピー。前に数値を入れると行数分コピー。
[0-9]+yl カーソル位置から文字数分コピー
p ペースト
■アンドゥ
u アンドゥ
■検索・置換
/pattern 後方へ検索。正規表現可能。
?pattern 前方へ検索。正規表現可能。
n 直前の検索と同じ方向へ続ける
N 直前の検索と反対方向へ続ける
[renge]s[/pattern/replace/][flag]
置換。
→renge : ファイル全体「% or 1,$」 行数指定「1,50」(1行目から50行目まで)
→pattern : 検索文字列。正規表現可。
→replace : 置換文字列。正規表現でキャプチャした場合、\1~\9、&(マッチ全体)が使用可能。
→flag : 確認しつつ置換「c」 全てのマッチを置換「g」。指定しないと最初のマッチのみ置換。
例)「satou nanashi」というテキストに
→%s/satou \([a-z]+\)/suzuki \1/g
の置換を行うと、
「suzuki nanashi」となる。
※「/」が検索文字列に入ってるときは違う記号で区切る。