move around

上下左右

hjkl(左下上右)
支持n步模式
4j就是向下移动4

翻页

<Ctrl>+[f] :  屏幕向下移动一页
<Ctrl>+[b] : 屏幕向上移动一页
<Ctrl>+[d] : 屏幕向下移动半页
<Ctrl>+[u] : 屏幕向上移动半页

其它按键

n<space> : n表示数字,向右移动n的字符
0 或者<Home>  移动到这一行的最前面
$ 或者<End>  移动到这一行的最后面
^: 跳到本行第一个非空字符
g_ : 跳到本行最后一个非空字符
H : 光标移动到这个屏幕的最上方那一行的第一个字符
M : 光标移动到这个屏幕的中间的那一行的第一个字符
L : 光标移动到这个屏幕的最下方那一行的第一个字符
G : 光标移动到这个文件的最后一行的第一个字符
nG  光标移动到这个文件的第n
gg  光标移动到这个文件的第1,相当于1G
N<Enter> : 光标向下移动n

e :跳到这个单词的结尾
E :跳到这个单词(扩展的,即下划线不算单词的分割)的结尾
w :跳到下一个单词的开头
W :跳到下一个单词(扩展的,即下划线不算单词的分割)的开头
% :跳到与之成对的符号处
*(#) :跳到当前光标的下一个(上一个)相同单词的地方

f<char> :跳到本行中<char>字符出现的下一个地方
t<char> :调到本行中<char>字符出现的下一个地方的前一个字符
3f<char> :从光标所在处开始在本行中查找字符<char>出现的第三个位置
FT  ft相似,但是方向相反
一例:
dta :删除所有直到下一个字符a之前

Ctrl+g显示文件的状态,行数等信息
. :重复上一个命令

Marks

m{a-zA-z} set mark {a-zA-Z} at cursor postion.
`{a-z} To the mark.
marks List all the current marks.
marks {arg} List the marks that are mentioned in {arg}

总结

大多数命令的格式:
<开始位置><命令的重复次数><命令><结束位置>
开始位置若缺省的话,默认为当前位置(当前光标所在出或当前行等)

0是本行开头,$是本行结尾,y是从这里开始复制开始

所以几个例子命令:
ye:从当前位置复制到单词的结尾
y2/include :一直复制到第二个include出现的地方

另一种形式: <开始位置><命令的重复次数><命令><motion的重复次数><motion>

motion 指光标的移动,如we,$等。