1. 如何使用vim打开一个文件后,位于100行的行首vim
]# vim +100 FILENAME编辑器
2. 如何使vim打开一个文件后,位于第一个if处ide
]# vim +/if FILENAME测试
3. vim有哪几种模式,分别有什么做用orm
答:有编辑模式、插入模式、末行模式、可视模式文档
编辑模式即正常模式,也是vim打开文件的默认模式,在这个模式下能够执行跳转、复制、删除、替换等操做。it
插入模式下能够输入字符。像文档编辑器同样写文档io
末行模式能够执行命令,好比高亮显示、执行外部命令等ast
可视模式下,能够按需选取行或字符,而后进行其余操做。class
4. 模式音的切换
A. 正常模式 --> 插入模式:能够使用i、I、a、A、o、O转换到插入模式。
i: 在当前光标所在处插入字符。
I: 在当前光标所在行的行首插入字符
a: 在当前光标所在处后方插入字符。
A: 在当前光标所在行的行尾输入
o: 在当前光标所在行的下方打开一个新行
O: 在当前光标所在行的上方打开一个新行。
B. 输入模式-->编辑模式, 按ESC键
C. 编辑模式-->末行模式, 输入:
D. 末行模式到编辑模式, 按ESC键盘
5. 如何保存并退出vim
A. 在正常模式下,输入大写的ZZ
B. 在末行模式下,输入:wq
C. 在末行模式下,输入:x
6. 如何将vim编辑的文件进行另存
:w /PATH/TO/SOMEFILE
7. 如何不保存退出
A. 若是文件没有被修改,则:q不保存退出
B.: 若是修改了文件而不想保存,只退出,使用:q!强制退出不保存。
8. 如何使光标在字符间跳转
A. 右手的hjkl,在正常模式下分别表示左、下、上、右。
B. 使用#COMMAND,表示能够向某个方向移动#次,好比2l表示向右移动2个字符。
9. 如何实现单词间的跳转
A. w,表示移动到下一个单词的首部
B. e, 表示移动到当前或者后一个单词的尾部
C. b,表示移动到当前或前一个单词的首部
D. #COMMAND,表示移动#个单词。
须要注意的是:在正常模式下按e,若是处于非单词尾部则移动到本单词词尾,若是自己是词尾则移动到下一个单词的词尾; b亦然。
E. 单词跳转前还能够在前面增长动做。好比d2w表示删除光标当前位置到下2个单词的词首。
10. 如何实现行首行尾的跳转
A. ^, 表示跳转到本行的第一个非空白字符
B. 0,表示跳转到本行的绝对行首
C. $,表示跳转到本行的行尾。
11. 行间跳转
A. G表示跳转到文件的最后一行
B. 1G或gg表示跳转到文件首行
C. #G表示跳转到第#行
D. #j表示向下跳转#行
E. #k表示向上跳转#行
12. 句间跳转和段间跳转
A. ),跳到下一句
B. (,跳到上一句
C. },跳到下一段
D. {,跳到上一段
13. 翻屏操做
A. Ctrl+f,向文件尾部翻一屏
B. Ctrl+b,向文件首部翻一屏
C. Ctrl+u,向文件首部翻半屏
D. Ctrl+d,向文件尾部翻半屏
E. Enter键,按行向后翻
14. 字符编辑(Nornal)
x,在正常模式下,表示删除光标所在处字符。
#x,表示从光标所在处开始,删除#个字符。
xp,交换光标所在处字符与其后面字符的位置。
15. 替换命令(Normal)
r: 替换光标所在处的字符。使用方法rCHAR,在当前光标位置输入r,再输入你想要替换成的字符能够将当前光标所在处字符替换成CHAR.
R: 进入替换模式,在正常模式下输入R后,会进入替换模式,替换光标所在处的字符,然后光标右移,能够一直替换。
16. 删除命令
d: d表示delete,能够结合光标跳转命令,实现范围的删除
d$: 删除当前光标所在处一直到行尾的字符
d^: 删除当前光标所在处(不含)一直到行首的字符
de: 删除当前光标所在处一直到本单词或者下一个单词的词尾
dw: 删除当前光标所在处一直到下个单词的词首(不含词首)
db: 删除当前光标所在处(不含当前光标)一直到本单词或上一个单词的词首
#d[b|e|w]: 表示删除命令能够搭配跳转及数字一块儿使用,达到删除多个单词的效果
dd: 删除整行
#dd: 删除多行
17. 粘贴命令(p,put,paste)
A. p: 若是剪贴板内容不是整行,则在当前光标的后面插入剪贴板内容; 若是是整行,则在当前光标所在行的下一行粘贴。
B. P: 若是剪贴板内容不是整行,则在当前光标的前面插入剪贴板内容;若是是整行,则在当前光标所在行的上一行粘贴。
18. 复制命令(y,yank)
y,复制,工做行为与d相似
y$: 复制当前光标所在位置一直到行尾的内容
y^: 复制当前光标所在位置(不含)一直到行首的非空白字符
y0: 复制当前光标所在位置(不含)一直到绝对行首
ye: 复制当前光标所在位置一直到词尾
yw: 复制当前光村所在位置一直到下一个词的词首(不含词首)
yb: 复制当前光标所在位置(不含)一直到本单词或者上一个单词的词首
#y[e|w|b]: y能够结合数字以及Motion来操做,表示一次能够复制多个单词
yy: 整行复制
#yy: 多行复制,从当前行算起,一块儿往下复制#行。
19. 改写命令(change,c):
编辑模式跳转到输入模式,实现删除操做。
c$: 删除当前光标所在处一直到行尾的字符,并进入Insert模式
c^: 删除当前光标(不含 )所在处一直到行首,并进入Insert模式
c0: 删除当前光标(不含 )所在处一直到绝对行首,并进入Insert模式
cb: 删除当前光标所在处(不含)一直到本单词或上一个单词的词首,并进入Insert模式
ce: 删除当前光标所在处一直到本单词或者下一个单词的词尾,并进入Insert模式
cw: 删除当前光标所在处一直到下个单词的词首(不含词首),并进入Insert模式
#COMMAND: 能够跟数字联动,表示能够改写多个单词或行
cc:删除光标所在的行,并转换为Insert模式;
#cc:
20. 撤消操做
A. u,undo,撤消前一次操做
B. U,撤消针对本行的全部操做
C. Ctrl+r,撤消此前的撤消操做,也就是redo,经测试不能redo大写U的撤消。
更多训练,请访问vimtutor,进行实操。