1. 查看帮助 vimtutor
2. 滚动
Ctrl-F, B 全页; Ctrl-D,U 半页; Ctrl-E,Y 一行;
3. :helpgrep 匹配查找帮助
4. word navigation
word vs WORD : word, 数字、字母、下横线; WORD: 空白字符切割
word b(beginning of previous) [current] e(end of current) w(begining of next)
WORD UPCASE: B, E, W
5. line-in navigation
0, $; ^, g_ (非空白字符)
6. Paragraph, section, sentence navigation (all go to the beginning)
{ : paragraph, } : the next paragraph
[[ : section, ]]: the next section
(: sentence, ): the next sentence
7. screen navigation
H, M, L
8. redraw screen with the current line
on top: z <Enter>
on middle: z.
on bottom: z-
9. go to unmatch
[(, [), [{, [} : go to previous unmatch
VIM基本知识
1.插入
o: 当前行后插入一个空行
O: 当前行钱插入一个空行
cw:替换光标到单词结尾
dt<char>:删除所有字符,直到遇到<char>
2. u: undo
C-r: redo
3. 命令
. : 重复上一条命令
N<command>: 重复N次命令
N.: 重复N次上条命令
<start postition><command><end postition>
这里常见的command有:y(复制), d(删除), v(选择), gU(变大写), gu(变小写)等等
0y$: 从行头复制到结尾
ye: 从光标处拷贝到本单词结尾
y2/foo:拷贝两个foo之间的字符串
4. 单词移动
e: 下一个单词结尾,w:下一个单词开头
E: 下一个单词结尾,W:下一个单词开头, (以blank作为分隔符)
5. 单词匹配
*:下一个
#:上一个
6. 光标移动
0: 行头, $:行尾
^:本行第一个非blank的字符, g_:本行最后一个非blank的字符
7.字符移动
Nf<char>: 下第N个字符char处
Nt<char>: Nf<char> - 1
NF<char>: 前第N个字符char处
NT<char>: NF<char>+ 1
8. 区域选择
<action>a<object> 或者 <action>i<object>
action: 任何的命令, 如: y, d, v
<object>: w(单词), W(以blank分割的单词), s一个句子, p一个段落,也可以是一个配对的字符: ', ", ), ], }
a: 包含边界, i: 不包含边界
9. 块操作 <C-v>
典型操作 0 <C-v> <C-d> I-- ESC
10. 自动补全
在插入模式下, <C-p> 和 <C-n>
11 宏录制 q
qaYp<C-a>q
qa:开始录制宏,保存在寄存器a中
Yp: 复制一行
<C-a>: 加1
q: 停止录制
此后, @a, @@ reply宏, 如100@@
11. 可视化选择之后
J: 把所有行练成一行
<或>: 左右缩进
=: 自动缩进
12. 屏幕的增减
<C-w>+ 或 <C-w>-