本篇的主要内容来自vim tutorial
光标移动操作
- h,j,k,l:分别表示,向左,向下,向上,向右移动光标
- t: 跳转到第一个出现该符号的之前。例子t:,跳转到第一个冒号之前
- f: 跳转到第一个符号,例子t:,跳转到第一个冒号
- 0:回到行首
- $:跳转到行尾
- w:跳转到下一个单词的开始
- b:往回移动一个单词
- e:跳转到当前单词的末尾
- ):移动到下一个句子,以.(句号)为标志
- :line_number,跳转到某行,与之相同的操作,输入行号,在在输入G(大写)
- H:移动到屏幕最开始的地方
- M:移动到屏幕中间的地方
- L:移动到屏幕的末端
- gg:回到文首
- G:到文尾
- CTRL+E:向上滚动一行
- CTRL+Y:向下滚动一行
- CTRL+F:向下翻整页
- CTRL+B:向上翻整页
- CTRL+U:向上翻半页
- CTRL+D:向下翻半页
- CTRL+i:前进一步,通常和ctrl+o配合使用,
- CTRL+o:后退一步,在搜索中,我们使用n向下搜索,使用ctrl+o可以回到前面匹配的对象
修改文本操作
- i:插入模式,在光标之后位置插入文本
- a:追加,在光标位置之后追加,和i的有点类似,但是两者操作的时候光标位置不同。按下a会后退一个光标位置,插入。按下i会在当前光标位置开始插入。具体区别实践一下就明白了。
- I(大写):开始从行首开始插入
- A:从行尾开始追加
- o:在当前光标之后,新开一行输入文本
- O(大写):在当前光标之前,新开一行输入文本
- r:rx在当前光标位置的字符替换为x
- R:从当前光标位置之后开始输入替换多个字符
- c motion: 一次性执行多个修改,比如说c2w,修改两个单词,cw修改一个单词,c$来修改句子的剩下部分。
- C(大写):修改从当前光标位置到行尾的所有内容。
- S(大写):和C(大写)差不多,但是它是替换整行,而C是从光标位置开始的
- ct? :修改直到第一个问号之前的内容,举一反三,ct:,ct=都是可以的
删除文本操作
- x:删除当前光标的字符,后面的内容往前顶
- X(大写):删除当前光标的字符,前面的内容往后挤
- d motion: 根据motion来删除,比如说d2w,删除两个单词,d$删除当前光标位置到行尾的所有内容
- dd:删除整行
- dt.:删除当前光标位置到第一个.(点号)的内容,dt:,dt?等都是类似的
- D(大写):从当前光标位置删除到行尾
- J(大写):将两行合并。效果是取消两行之间的换行符(\n)
重复操作
在完成一个操作后,可以使用.(点号)来重复操作,比如说d2w等等。除此之外,5.可以表示重复刚才的操作5次
复制粘贴
在visual mode之下,按下v来选取需要的文本,然后按下y来复制。
y: 复制所选取的文本
yy: 复制当前光标所属的整行内容
p:将内容复制到当前光标之后
P(大写):将内容复制到当前光标位置之前。
vim的一些配置
syntax on # highlight syntax
set number # show line numbers
set noswapfile # disable the swapfile
set hlsearch # highlight all results
set ignorecase # ignore case in search
set incsearch # show search results as you type
在wsl中好像需要把注释去掉,不然会报错