generated at
Vim normal command一覧
normal modeで使うコマンドの一部

motion
1文字cursor移動
h : 左
j : 上
k : 下
l : 右
左右移動motionは、それぞれ行頭/行末にぶつかるとそれ以上移動しなくなる
単語移動
w : 単語 記号区切り 次の先頭へ
b : 単語 記号区切り 前の先頭へ
e : 単語 記号区切り 次の末尾へ
ge : 単語 記号区切り 前の末尾へ
W : 単語 空白区切り 次の先頭へ
B : 単語 空白区切り 前の先頭へ
E : 単語 空白区切り 次の末尾へ
gE : 単語 空白区切り 前の末尾へ
行をまたいで移動できる
行内移動
0 : 行頭へ
^ : 空白以外の行頭へ
$ : 行末へ
g_ : 空白以外の行末へ
f{char} : 行内でcursorの左側にある最初の char に飛ぶ
t{char} : 行内でcursorの左側にある最初の char の一つ前に飛ぶ
行移動
gg : 最初の行へ
G : 最後の行へ
H : 画面に表示されている一番上の行に飛ぶ
M : 画面に表示されている真ん中の行に飛ぶ
L : 画面に表示されている一番下の行に飛ぶ
{count}gg / {count}G : count 行目へ飛ぶ
{ : 前の段落の先頭行へ
} : 次の段落の先頭行へ
スクロール
<C-u> : 画面半分上へスクロール
<C-d> : 画面半分下へスクロール
<C-b> : 1画面分上へスクロール
<C-f> : 1画面分下へスクロール

enter Insert Mode
i : cursorの前で
a : cursorの後ろで
I : 空白以外の行頭で
A : 空白を含めた行末で
o : cursorの下に新しい行を挿入して
set autoindentが設定されているときは、indentを挿入してからinsert modeに入る
O : cursorの上に新しい行を挿入して
set autoindentが設定されているときは、indentを挿入してからinsert modeに入る

editing
置換
r{char} : cursor下の文字を char に置き換える
~ : cursor下の文字の大文字小文字を切り替える
warningset tildeopがOFFのときのみ
切り取り
それぞれ "x を前につけることで、 x レジスタに切り取り結果を格納できる
省略すると無名レジスタに格納される
x : cursor下の文字を切り取る
X : cursorの前の文字を切り取る
d{motion} : motion で指定した範囲を切り取る
D : cursorから改行を除く行末までを切り取る
dd : cursorのいる行を切り取る
改行文字を含む
yank
それぞれ "x を前につけることで、 x レジスタにyank結果を格納できる
省略すると無名レジスタに格納される
y{motion} : motion で指定した範囲をyankする
yy : cursor のいる行をyankする
改行文字を含む
paste
それぞれ "x を前につけることで、 x レジスタの文字列をpasteできる
省略すると無名レジスタの文字列をpasteする
p : cursor の前にpasteする
P : cursor の後ろにpasteする
delete and insert
それぞれ "x を前につけることで、 x レジスタに切り取り結果を格納できる
省略すると無名レジスタに格納される
c{motion} : motion で指定した範囲を切り取って、insert modeに移る
C : cursorから改行を除く行末までを切り取ってinsert modeに移る
cc : cursorのいる行を切り取って、insert modeに移る
set autoindentが設定されているときは、indentを挿入してからinsert modeに入る
インデント
>> curosrのいる行のindentを一段深くする
<< curosrのいる行のindentを一段浅くする

undo/redo
u : undo
<C-r> : redo

macro
. : 最後に実行したcommandをもう一度実行する
q{char} : macroの記録を開始する
q 押すと、それまでに入力された文字列を char レジスタに格納する
@{char} : char レジスタ内の文字列をcommandとみなして実行する


Reference

2020/12/12