vim行内编辑的一些通用规则:
vim的行内编辑可以归纳为[n]at
—[n]是可选的量词,表示处理对象的数量。
— a表示action,可以是c(change),y(yank),d(delete)。
— t表示target,可以是w(word),e(end),$(行尾),0(行首)。
— c是change,执行c动作后会进入编辑模式,d是delete,执行d动作后不会进入编辑模式,注意二者区别,灵活使用。
— w和e的区别在于如何处理空格,w把空格当做当前word的一部分,e则不处理空格。
— 关于word间空格的一个例外是,c不处理,所以cw和ce是一样的,而y,d则会处理空格,所以yw,ye,或dw,de不一样。
— W或E则表示在action处理时包括标点。
明白了上述通用规则,可以很容易推导出下面的用法。
比如cw/ce表示修改一个word,dW/dE表示删除一个word并处理标点,yw/ye表示复制一个word,d$删除到行尾,d0删除到行首,3dw删除3个word。
下面有几个用例,用来强化和验证上述规则。
测试字符串:
this is a test for inline edit.
case1: 将this改为This。
步骤:0定位到行首,cw或ce,删除this,输入This。这里当然可以用x删除单个字符,这里只是演示cw/ce。
This is a test for inline edit.
case2: 用yw,ye复制this,比较区别。
步骤:0定位定位到行首,yw/p,ye/p分别复制粘贴。
this #yw复制了5个字符,包括this后的空格
this #ye复制了4个字符,不包括this后的空格
case3:把edit.改为editor!
步骤:定位到edit,cW,行末的.会被删除,输入editting!
this is a test for inline editting!
case4: 把This is a test改为There are some tests
步骤: 定位到行首,4cw,修改前4个word
There are some tests for inline edit.
以上就是vim行内编辑的一些通用规则,如能熟练掌握,使用vim将更从容和优雅。