约定
除特殊说明以外,本篇所有操作都是在普通模式下进行的。
上下左右移动(基本操作)
k/j/h/l可以操作光标在vim中上下左右移动。
k:光标向上移动一行
j:光标向下移动一行
h:光标向左移动一个字符
l:光标向右移动一个字符
数字N加上kjhl相当于连续N次操作,比如5j表示光标向下移动5行。
以word为单位的移动
w/b/W/B可以操作光标在vim中以word为单位移动。
w:光标向后移动一个word;特殊字符作为分隔符(通常为非数字和字母的字符,比如逗号,空格,下划线等一些符号)
b:光标向前移动一个word;分隔符同w
W:光标向后移动一个word;空白作为分隔符(连续的多个空白当做一个)
B:光标向前移动一个word;分隔符同W
wbWB同kjhl一样可以结合数字连续多次操作
移动到行尾或行首
^/0/$可以操作光标移动到行尾或者行首。
^:光标移动到行首的第一个非空白字符处
0:光标移动到行首
$:光标移动到行尾
移动到指定的字符上
f/F加上字符可以操作光标移动到指定的字符上。
f+字符:向后查找,移动到指定的字符上,比如fa会把光标向后移动到第一个a字符处。
F+字符:向前查找,移动到自定的字符上。
匹配括号的移动
百分号(%)可以操作光标移动到当前括号所匹配的括号处(括号、中括号、花括号),比如当前光标在花括号({)上,按下%键,光标将移动到当前花括号对应的匹配花括号(})处。
移动到指定位置
移动到指定行位置
冒号(:)+数字可以移动到指定行数的位置,比如:5光标将会移动到第5行。
数字+百分号(%)可以移动到文件指定的位置,假如一个文件有100行,90%光标将会移动到第90行
移动到屏幕指定位置
H/M/L可以操作光标移动到屏幕的指定位置。
H:Home的意思,移动到屏幕的第一行。
M:Middle的意思,移动到屏幕的中间位置。
L:Last的意思,移动到屏幕的最后一行
移动到文件指定位置
gg/G可以操作光标移动到文件的头部或者尾部。
gg:光标移动到文件第一行
G:光标移动到文件最后一行
显示当前位置
CTRL+G命令可以得到文件的一些基本信息(假设ruler选项关闭)
|
|
上图展示了当前正在编辑的文件名,当前光标所在的行号,文件总的行数,当前行在文件总行的百分比,当前光标所在的列;有时候你会看到两个以-分隔的数字来表示列, 如”col 2-9”. 这意味着你的光标位于第二个字符上, 因为第一个字符是一个跳格键, 占了8个字符的位置, 所以屏幕上看起来该列位置是9。
设置’number’选项,在每一行的前面显示行号
|
|
关闭可以使用’nonumber’选项即set nonumber。
|
|
number和nonumber可以分别简写为nu和nonu。
设置’ruler’选项,可以在vim窗口的右下角显示当前光标位置。
|
|
显示结果如下
|
|
关闭可以设置’noruler’选项。
|
|
滚动
CTRL +U/D/B/F/Y/E可以文本在屏幕中滚动。
CTRL+U:文本向下滚动半屏(也可以想象为在显示文本的窗口向上滚动了半屏)
CTRL+D:文本向上滚动半屏
CTRL+B:文本向下滚动一屏
CTRL+F:文本向上滚动一屏
CTRL+Y:文本向下滚动一行
CTRL+E:文本向上滚动一行