最近在图书馆逛逛,发现一本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实用技巧》
s27262985.jpg













网友评论