Vim
观看一个vim高手做复杂编辑时,当他手指在键盘上飞舞,文字像刷屏一样,你会认为它具有超人的力量。 --------------鲁迅(误)
终于到vim了。
说起vim,我真的是深有感触。19年去打ICPC南昌邀请赛的时候,中间去上厕所,回来的时候,发现一个大佬在用vim调程序。飞快的手在键盘上左右移动,极度舒适,一看就是身经百战的老油条了,十分羡慕。
不知不觉又说了很多废话,总之vim很重要就对了。
vim的三种模式(不同教材说法可能不同)
-
命令模式:刚进入vim就处于这个模式。
-
插入(编辑)模式:可以进行正常编辑,esc退出。
-
尾行模式:在命令模式下输入“:”可以进入。
命令模式下的命令
注意,以下操作均在命令模式下进行
文本编辑命令
命令 | 作用 |
---|---|
a | 在光标后面插入 |
A | 在行末插入 |
i | 在光标前面插入 |
I | 在行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
光标移动命令
命令 | 作用 |
---|---|
h | 左移一个字符 |
3h | 左移3个字符(其他命令同理) |
l | 右移一个字符 |
j | 下移一行 |
k | 上移一行 |
0 | 移至行首 |
$ | 移至行尾 |
H | 移至屏幕上端(high) |
M | 移至屏幕中央(mid) |
L | 移至屏幕下端(low) |
G | 移至文章最后 |
4G | 移动至文章第4行 |
gg | 移至文章开头 |
w | 光标移至下一个单词 |
b | 光标移至上一个单词 |
总之,老师说,学vim就像是学一门语言。好比英语,他当时就是因为每天下课之后都拿着英文阅读理解消磨时间,久而久之熟练了,所以英语四级考了98.5(百分制),六级考了85。。。无形之中装了个b,hhhh。
滚动屏幕命令
命令 | 作用 |
---|---|
ctrl +b | 向后滚动一页 |
ctrl +f | 向前滚动一页 |
ctrl +d | 向后滚动半页 |
ctrl +u | 向前滚动半页 |
文本删除命令
命令 | 作用 |
---|---|
x | 删除光标所在处字符 |
X | 删除光标前面的字符 |
2x | 删除光标处2个字符(组合使用是考点) |
fx | 光标移动到这一行字母“x”处 |
tx | 光标移动到这一行字母“x”之前 |
dd | 删除光标所在行 |
2dd | 删除光标所在位置2行 |
D | 删除光标右边所有内容 |
2dw | 删除光标之后2个单词 |
dfx | 删除这一行一直到字母“x”的位置 |
:1,3d | (尾行模式下)删除第一行到第三行 |
这一部分的组合命令很多,如果能熟练掌握最起码考试是没问题了。
文本修改命令(替换和取消)
命令 | 作用 |
---|---|
u | 取消上一步操作(很实用) |
U | 取消当前所有操作 |
~ | 大小写切换 |
rx | 将光标位置处的字符替换为“x”,单个字符 |
Rx | 从光标开始处替换,按esc结束替换 |
sx | 先删除在替换为字符“x”,并且自动进入编辑模式,esc退出 |
S | 先删除光标所在行,进入编辑模式,esc退出 |
文本复制、粘贴命令
命令 | 作用 |
---|---|
yy,Y | 复制当前行 |
2yy | 复制接下来的2行 |
p | 粘贴在光标下一行 |
P | 粘贴在光标上一行 |
ywp | “yw”复制光标所在这一单词,“p”在光标处粘贴单词 |
dwp | “dw” 剪切光标所在这一单词,“p”在贯标出粘贴单词 |
复制粘贴用到的频率还是很高的。前面的d命令虽然解释成delete,但实际上是把删除的内容放到了类似于windows剪贴板的缓存中,类似于剪切操作。
保存和退出命令
以下命令是在尾行模式下进行的
命令 | 作用 |
---|---|
:w | 保存 |
:wq | 保存并退出 |
:w filename | 保存为某个名字的文件 |
:q! | 强制退出,不保存修改 |
:wq! | 强制保存退出(忽略只读属性) |
ZZ | 就是:wq |
ZZ实际上就是“wq”,很形象,可以理解为收工了就可以睡觉了。
高级选项或命令
命令 | 作用 |
---|---|
:set nu | 显示行号 |
:set nonu | 隐藏行号 |
:set ic | 搜索忽略大小 |
:set noic | 搜索区分大小 |
:5 | 光标移到第五行 |
搜索和替换命令
命令 | 作用 |
---|---|
/str | 向前搜索str |
?str | 向后搜索str |
n | 搜索下一个位置(前提是已经进行搜索) |
N | 搜索上一个位置 |
/,?又是进入尾行模式的另一些办法。
总结
vim是一种很强大的编辑器,光纸上谈兵是不行的,一定要多加练习,多体会各种用法。而且,在工作中,我觉得vim基本上是不可逃避的,比如你总要去查看一些日志文件的,那些文件一般都长的离谱,没点技巧确实会有点吃力。
周三软微面试,2020的第一场线下复试,linux课又要耽误了。总之,尽力就好,不留遗憾吧,加油。
![](https://i-blog.csdnimg.cn/blog_migrate/b5e46745c3d0b224d1799bceb3ac7ac2.png)