【转】一块儿来讲Vim语

做为一款古老而具备持久生命力的编辑器,Vim 自有它的强大之处。不少人以为 Vim 的学习曲线太陡峭了,为了可以把 Vim 用得风生水起,不得不记忆大量的命令。若是你是 Vim 新手,刚入门就开始面对着浩如烟海的命令逐条学习,我相信你必定会逐渐失去对它的兴趣。其实,Vim 以一种近乎天然语言的方式帮助你完成文本的编辑工做。只须要熟悉几条简单的语法,你就会坐在旋转座椅上先后打转,感慨美妙的生活又回来了。html

咱们假设你已经了解了 Vim 的几种经常使用的工做模式(正常模式、插入模式、命令模式等),若是你还不了解,请先阅读这里。如今就让咱们一块儿来学习一下 Vim 语吧。vim

动词

动词表明了咱们打算对文本进行什么样的操做。例如:编辑器

  • d 表示删除(delete)ide

  • r 表示替换(replace)学习

  • c 表示修改(change)spa

  • y 表示复制(yank).net

  • v 表示选取(visual select)code

名词

名词表明了咱们即将处理的文本。Vim 中有一个专门的术语叫作文本对象(text object),下面是一些文本对象的示例:htm

  • 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 word
2dw

# 三次删除字符(等价于删除三个字符):three times delete character
3x

怎么样,是否是很容易理解?

转自简书http://www.jianshu.com/p/a361ce8c97bc

相关文章
相关标签/搜索