vim:快捷键-移动
上下左右
h
左,或 Backspace
或方向键
j
下,或 Enter
或 +
(要 Shift 键),或方向键
k
上,或 -
(不必 Shift 键) 或 方向键
l
右,或 Space
或 方向键
使用hjkl
键的移动是为了使手不必离开打字区(键盘中央的部位),以加快打字的速度,如果不习惯,就使用方向键吧!
Backspace
及 Space
的移动方式是到了行首或行尾时会折行,但方向键或 hl
键的移动则在行首或行尾时您继续按也不会折行。转折换行的功能是 vim 的扩充功能,elvis 无此功能。
jk
及使用方向键的上下移动游标会尽量保持在同一栏位。使用 Enter
,+
,-
的上下移动,游标会移至上(下)一行的第一个非空白字元处。
翻页
Ctrl-f
即 PageDown
翻页。
Crtl-b
即 PageUp
翻页。
行内移动
0
是数目字 0 而不是英文字母 o。或是 Home
键,移至行首
^
移至第一个非空白字元,注意,要 Shift 键。
$
移至行尾,或 End
键。要 Shift 键。
以上两个按键是源自正则表示式(regular expression),在 regexp 中 ^ 是匹配行首,$ 是匹配行尾。
文档内移动
G
移至档尾(最后一行的第一个非空白字元处)
gg
移至档首(第一行之第一个非空白字元处)
gg 是 vim 的扩充功能,在 elvis 或原始 vi 中可用 1G
来移至档首(是数字 1 不是英文字 l)。
G 之原意是 goto,指移至指定数目行之行首,如不指定数目,则预设是最后一行。
字母间移动
w
移至次一个字(word)字首。当然是指英文单字。
W
同上,但会忽略一些标点符号。
e
移至前一个字字尾。
E
同上,但会忽略一些标点符号。
b
移至前一个字字首。
B
同上,但会忽略一些标点符号。
屏幕内移动
H
移至萤幕顶第一个非空白字元。
M
移至萤幕中间第一个非空白字元。
L
移至萤幕底第一个非空白字元。
这和 PageDown
,PageUp
不一样,内文内容并未动,只是游标在动而已。
n|
移至第 n 个字元(栏)处。注意,要用 Shift 键。n 是从头起算的。
:n
移至第 n 行行首。或 nG
。
^F
向下移动一屏
^B
向上移动一屏
n^F
向下移动n屏
n^B
向上移动n屏
^D
向下移动半屏
^U
向上移动半屏
n^D
向下移动n行
n^U
向上移动n行
^E
向屏幕顶端多滚动一行
^Y
向屏幕底端多滚动一行
zENTER
将光标所在的行移动到屏幕顶端
z.
将光标所在的行移动到屏幕中间
z-
将光标所在的行移动到屏幕底端