最近在图书馆逛逛,发现一本vim的书,想都没想就拿回来了。读了书本几章后,我意识到自己有多么孤陋寡闻,对vim只知道皮毛而已
认识 . 命令
.
命令 重复上一次修改,这个命令看起来没什么特别,但是如果跟其他命令组合可以减少很多重复操作,我们写代码一直铭记No report yourself
。
现在我们在做一个练习试试怎么使用的,按下dd
删除当前行,后使用.
重复上一次操作,删除当前行。这个是比较简单的使用,来一个相对复杂,又减少很多重复步骤的操作。我们在写代码,一般都要加 ';' ,这个一个非常繁琐的工作。如果在常规情况,我们需要将光标移动到句尾,切换到插入模式,添加句号,换行效率很慢。使用vim组合命令,效率大大改进。
使用A
将光标切换到句尾,并且进入输入模式, A
明明相当于$a
组合。输入分号按Esc
退出插入模式,按j
进入下一行,使用.
命令一部到位。以后每一行j.
,每一个自动加上分号。
假如有一段代码
var b = a+b+c+d;
我们要将代码格式化成
var b = a + b + c + d;
-
f+
查找第一个+
字符出现地方,将光标到字符上。 -
s
删除+
字符,重新输入带两边都带空格的+
-
;
命令重复上次f
命令所查找的字符 - 输入
.
命令重复上一步操作 -
;.
自动在+
之间添加空格
搜索替换
如果我们想替换文本某个文字,一般需要%s/old/new/g
,但是这个命令会替换所有的文本,不小心会出现误操作的情况。vim也可以先搜索文本,跳转到位置上,根据情况是否替换。
- 进入命令模式
/{char}
搜索文本,切换普通模式 - 将光标移动到一个要替换的文本
-
cw{year}
输入替换后文本单词,cw
从单词头开始删除整个单词,切换到插入模式, - 使用
n
搜索下一个文本,光标会自动跳转到单词首位,这个用过vim搜索都知道这个按钮 - 使用
.
,自动替换。
减少重复
db
反向删除,从光标开始删除,单词反向删除。
dw
正向删除,从光标开始向后删除
daw
删除整个单词,可以记住 “delete a world"
d2w
或者 2dw
都是删除2个单词,
这些操作只是很小一个章节,如果大家想深入了解vim其他简洁的功能,非常推荐大家去下Drew Neil
《Vim实用技巧》
![](https://img.haomeiwen.com/i9213940/84b93a2c93957814.jpg)
网友评论