Vim 多行匹配字符"\_.

Vim 多行匹配字符"\_."

vi平时我们使用的匹配字符"."不能够匹配换行符号,所以我们没法使用它进行跨行匹配。

如有以下数据:我们想查找所有在城市为beijing,年龄为18岁的人。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
name: A

city: beijing

age: 18

name:B

city:shanghai

age:15

name: C

city: beijing

age:18

此时"."就无能为力,我们需要用 \_.\{-}(非贪婪)

1
/citi: beijing\_.*age:18

非贪婪

1
/citi: beijing\_.\{-}age:18

匹配个数

1
:%s/citi: beijing\_.\{-}age:18//gn