摘自 song4
Vim 以一种近乎自然语言的方式帮助你完成文本的编辑工作。
只需要熟悉几条简单的语法,你就会坐在旋转座椅上前后打转,感慨美妙的生活又回来了。
好吧,开始吧。
Vim 以一种近乎自然语言的方式帮助你完成文本的编辑工作。
只需要熟悉几条简单的语法,你就会坐在旋转座椅上前后打转,感慨美妙的生活又回来了。
好吧,开始吧。
动词动词代表了我们打算对文本进行什么样的操作。例如:
d表示删除(delete)r表示替换(replace)c表示修改(change)y表示复制(yank)v表示选取(visual select)名词名词代表了我们即将处理的文本。Vim 中有一个专门的术语叫做文本对象,下面是一些文本对象的示例:
w表示一个单词(Word)s表示一个句子(sentence)p表示一个段落(paragraph)t表示一个 HTML 标签(tag)引号或者各种括号所包含的文本称作一个文本块介词介词界定了待编辑文本的范围或者位置。例如:
i表示“在...之内”(inside)a表示“环绕...”(around)t表示“到...位置前”(to)f表示“到...位置上”(forward)下面是几个有关范围的示意图,你们感受一下:
组词为句有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。文本编辑命令的基本语法如下:
动词 介词 名词
下面是一些例子(如果熟悉了上面的概念,你将会看到这些例子非常容易理解),请亲自在 Vim 中试验一番。
# 删除一个段落: delete inside paragraph
dip# 选取一个句子: visual select inside sentence
vis# 修改一个单词: change inside word
ciw# 修改一个单词: change around word
caw# 删除文本直到字符“x”(不包括字符“x”): delete to x
dtx# 删除文本直到字符“x”(包括字符“x”): delete forward x
dfx
数词数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。引入数词之后,文本编辑命令的语法就升级成了下面这样:
动词 介词/数词 名词
下面是几个例子:
# 修改三个单词:change three words
c3w# 删除两个单词:delete two words
d2w
另外,数词也可以修饰动词,表示将操作执行 n 次。于是,我们又有了下面的语法:
数词 动词 名词
请看示例:
# 两次删除单词(等价于删除两个单词): twice delete word2dw# 三次删除字符(等价于删除三个字符):three times delete character3x