Vim移动命令(2)基于单词/字串的移动命令

Vim移动命令(1)基本移动命令 讲解了基本的移动命令,对于左右的移动,使用h, l来进行移动,但是它的粒度太细了,一次只能移动一个字符位置。

Vim提供了基于单词/字串的移动命令,能让我们在一行中,每次移动一个单词/字串。

单词和字串的定义

首先我们得知道什么是单词(Vim中用word表示),什么是字串(Vim中用WORD表示)。

单词的定义有两种方式,如下

  1. 由字母,数字和下划线组成的字符序列,例如 66hello就是一个单词。
  2. 如果没有字母,数字或下划线,仅通过非空白字符组成的字符序列,也是一个单词。例如,./是一个单词。

字串的定义比较简单,只要是非空白字符组成的字符序列,都是字串 。从这个定义看,单词是字串的一个子集。例如I'm David中,I'm就是一个字串。

基于单词/字串的移动命令

移动命令说明
w移动到下一个单词的开头
W移动到下一个字串的开头
e移动到当前单词的末尾,或者下一个单词的末尾
E移动到当前字串的末尾,或者下一个字串的末尾
b移动到当前单词的开头,或者前一个单词的开头
B移动到当前字串的开头,或者前一个字串的开头
ge移动到上一个单词的结尾
gE移动到上一个字串 的结尾

这个比较好记忆,小写字母代表单词的移动,大小字母代表字串的移动。在实际中操作几下就很容易记住了。

范围边界问题

移动命令在Vim都都有一个inclusive/exclusive的概念,这是很多新手非常疑惑的一个问题,看下下面的一个例子。

命令文本
My name is Frank Chow!
dwMy name is Chow!

黄色背景表示光标所在的位置,初始时,光标在Frank的首字母上,通过dw命令,删除了Frank以及后面一个空格,最后光标位于Chow的首字母上。

w的范围是从当前光标到下一个单词的开关,但是使用dw删除时,并没有删除Chow的首字母。 因为w是exclusive的命令,也就是说范围的右侧为开区间。

如果光标位于单词的首字符上,而使用de可以完整删除一个单词,这表明e命令是inclusive的,也就是说范围右侧为区间。

那么移动命令到底是开区间还是闭区间,这个可以在Vim中通过:h motion.txt查询文档,然后在实际中熟能生巧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值