Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


一起来说 Vim 语

2015-11-20 08:31    评论: 16 收藏: 19    

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

我们假设你已经了解了 Vim 的几种常用的工作模式(正常模式、插入模式、命令模式等),如果你还不了解,请先阅读 这里。现在就让我们一起来学习一下 Vim 语吧。

动词

动词代表了我们打算对文本进行什么样的操作。例如:

  • d 表示删除delete
  • r 表示替换replace
  • c 表示修改change
  • y 表示复制yank
  • v 表示选取visual select

名词

名词代表了我们即将处理的文本。Vim 中有一个专门的术语叫做文本对象text object,下面是一些文本对象的示例:

  • w 表示一个单词word
  • s 表示一个句子sentence
  • p 表示一个段落paragraph
  • t 表示一个 HTML 标签tag
  • 引号或者各种括号所包含的文本称作一个文本块。

介词

介词界定了待编辑文本的范围或者位置。例如:

  • i 表示“在...之内”inside
  • a 表示“环绕...”around
  • t 表示“到...位置前”to
  • f 表示“到...位置上”forward

下面是几个有关范围的示意图,你们感受一下:


Prepositions

组词为句

有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。文本编辑命令的基本语法如下:

动词 介词 名词

下面是一些例子(如果熟悉了上面的概念,你将会看到这些例子非常容易理解),请亲自在 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

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

发表评论


最新评论

我也要发表评论

来自四川成都的 Firefox 45.0|Ubuntu 用户 2016-3-25 08:56
作者很有创意,很好的记忆方法
1 回复
粱小无拆 [Chrome 45.0|Windows 7] 2016-1-21 00:15
看过一本书,说vim是唯一一个熟悉了之后,思维和动作能同步的编辑器
2 回复
断了的军刀 [Sogou Explorer 2|Windows 7] 2015-12-13 12:18
好东西
3 回复
ZengYi [Firefox 42.0|Ubuntu] 2015-11-24 09:05
这篇文章很有新意!
1 回复
来自四川南充的 Iceweasel 38.4|GNU/Linux 用户 2015-11-23 19:19
vim大法好!!
1 回复
shjhcx [Firefox 42.0|Windows 7] 2015-11-23 08:30
言简意赅,短小精干,顶!
4 回复
浩浩君 [Chrome 44.0|Windows 8.1] 2015-11-22 11:46
好东西不错不错!收藏!
7 回复
来自北京的 Chrome 46.0|Windows 10 用户 2015-11-21 12:23
话说这个文章是最近看到的有干货的文章了,只是太短,可以再扩充点
3 回复
Aquarius [Chrome 45.0|Windows 10] 2015-11-20 17:24
蛮不错,只是觉得有点少,希望再扩展一些
7 回复
Sephiroth [Firefox 42.0|Ubuntu] 2015-11-20 16:22
推荐新手在学习了vim的基本模式和简单使用方法后阅读那本《vim实用技巧》,里面涵盖了很多vim高级编程技巧,确实让人眼前一亮,这也是我桌上常备的工具书之一。
7 回复
来自四川成都的 Chrome 46.0|GNU/Linux 用户 2015-11-20 16:19
Vim Cheat Sheat for Programmers by Michael Pohoreski (http://michael.PeopleOfHonorOnly.com/vim/)
1 回复
绿色圣光 [Firefox 42.0|Windows 7] 2015-11-20 12:37
赞!
6 回复
Nic [Firefox 42.0|Windows 7] 2015-11-20 10:47
1
来自四川成都的 Chrome 46.0|GNU/Linux 用户 发表于 2015-11-20 09:13 的评论:
Prepositions 图无法显示
看出处原文有图
1 回复
POCMON [Firefox 42.0|Ubuntu] 2015-11-20 09:37
不错,这个方法好~
1 回复
Alex_rao [Chrome 46.0|GNU/Linux] 2015-11-20 09:17
good    省去了不少死记硬背
1 回复
来自四川成都的 Chrome 46.0|GNU/Linux 用户 2015-11-20 09:13
Prepositions 图无法显示
回复

热点评论

浩浩君 [Chrome 44.0|Windows 8.1] 2015-11-22 11:46
好东西不错不错!收藏!
7
Sephiroth [Firefox 42.0|Ubuntu] 2015-11-20 16:22
推荐新手在学习了vim的基本模式和简单使用方法后阅读那本《vim实用技巧》,里面涵盖了很多vim高级编程技巧,确实让人眼前一亮,这也是我桌上常备的工具书之一。
7
Aquarius [Chrome 45.0|Windows 10] 2015-11-20 17:24
蛮不错,只是觉得有点少,希望再扩展一些
7
绿色圣光 [Firefox 42.0|Windows 7] 2015-11-20 12:37
赞!
6
shjhcx [Firefox 42.0|Windows 7] 2015-11-23 08:30
言简意赅,短小精干,顶!
4

本文导航

相关阅读

返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。