Vim normal command一覧
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の下に新しい行を挿入して
O
: cursorの上に新しい行を挿入して
editing
置換
r{char}
: cursor下の文字を char
に置き換える
~
: cursor下の文字の大文字小文字を切り替える
切り取り
それぞれ "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できる
p
: cursor
の前にpasteする
P
: cursor
の後ろにpasteする
delete and insert
それぞれ "x
を前につけることで、 x
レジスタに切り取り結果を格納できる
C
: cursorから改行を除く行末までを切り取ってinsert modeに移る
cc
: cursorのいる行を切り取って、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