Vim 笔记

本文介绍了Vim编辑器中高级查找技巧,包括字符偏移、起始位置设定、多择一模式、预定义范围匹配及换行符匹配等实用功能。通过这些技巧,可以大幅提升文本搜索效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字 符 偏 移

偏移符 "e" 表示一个偏移从匹配末尾算起。它把光标移到匹配的最后一个字符上。命令:

/const/e

把光标放到单词 "const" 的 "t" 上。

加一个数字,光标就从该位置再前移该数字指定的那么多个字符。下面这个命令会将光标移到匹配后面第一个字符:

/const/e+1

一个正数使光标右移,负数使其左移。例如: >

/const/e-1

会把光标移到单词 "const" 的 "s" 字符上。

如果偏移以 "b"开头,那么光标就移到匹配模式的首位。因为不用"b"
光标也一样会被移到首位,所以单独使用时没什么意义。在将它与一个
加上或减去的数字合起来时,就很有用了。光标就会前移或后移那么多个
字符。例如:

/const/b+2

会把光标移到匹配的首位,再往右移两个字符。因而落在字符 "n" 上。

起 始 位 置

查找时,通常从光标位置开始。当你规定的是一个行偏移,这可能造成麻烦。例如: >

/const/-2

这个命令找到下一个单词 "const",然后上移两行。

多择一

在一个查找模式中,"或" 运算符是 "\|"。例如: >

/foo\|bar

预 定 义 范 围

有些字符范围使用得很频繁。Vim 为这些字符范围提供了一些快捷方式。例如: >

/\a

这个命令找寻字母字符。这相当于使用 "/[a-zA-Z]"。下面还有几个这样的字符范围:

项       匹配              相当于 ~
\d      数位              [0-9]
\D      非数位             [^0-9]
\x      十六进制数位        [0-9a-fA-F]
\X      非十六进制数位      [^0-9a-fA-F]
\s      空白字符            [   ]     (<Tab> 和 <Space>)
\S      非空白字符           [^      ]     (非 <Tab> 和 <Space>)
\l      小写字母            [a-z]
\L      非小写字母           [^a-z]
\u      大写字母            [A-Z]
\U      非大写字母           [^A-Z]

匹配换行符

Vim 能找寻含有换行符的模式。你需要指定换行符在哪儿出现,因为迄今为止所有我们 曾经提到过的项,都不匹配换行符。 用 "\n" 项可以在一个特定的位置查验一个换行符: >

/the\nword

这个命令将在一行以 "the" 结尾,而下一行以 "word" 开头的地方找到匹配。如果还要 匹配 "the word",那么你需要匹配一个空格或一个换行符。这可以用 "_s" 表示: >

/the\_sword

若要允许任意数量的空格: >

/the\_s\+word

这个命令也匹配 "the " 在行尾,及 " word" 在下一行行首的情形。

"\s" 匹配空格字符,"_s" 匹配空格字符或一个换行符。同理,"\a" 匹配一个字母字 符,而 "_a" 匹配一个字母字符或一个换行符。其它字符类和字符范围都可以通过插入 一个 "_" 来更改其范围。

很多别的项也可以在前面加 "_" 以匹配一个换行符。例如: "_." 匹配任意字符或一个 换行符。

备注:
"\_.*" 匹配任何字符,直至文件结束。要小心,它会使查找命令执行得非常缓
慢。

另一个例子是 "_[]",一个包含了换行符的字符范围: >

/"\_[^"]*"

这个命令找寻位于一对双引号之间,可能分隔成数行的文本。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值