闪耀旅途

神级编辑器 Vim 使用-正则替换篇

2021-01-21  本文已影响0人  闪耀旅途

Vim 的替换查找是其核心功能, 功能极其强大, 通过其规则匹配, 可以很快速地完成我们很多需要大量人力操作的工作, 而且可对多文件使用查找/替换功能.

himg

本系列教程共分为以下五个部分:

  1. 神级编辑器 Vim 使用-基础篇
  2. 神级编辑器 Vim 使用-操作篇
  3. 神级编辑器 Vim 使用-插件篇
  4. 神级编辑器 Vim 使用-正则操作篇
  5. 神级编辑器 Vim 使用-最后

正则匹配的模式

编程界实现了多种正则匹配引擎, vim 的正则匹配引擎是独有的, 其风格类似于 POSIX, 但是我们可通过将其匹配模式设为:

本文只讨论默认模式下(\m 模式)下的正则匹配, 其他模式下的原理类似, 读者可自行研究

查找

查找元字符

元字符是正则匹配的一个概念, 通过元字符可以快速找出目标字段.

如上所述, ., *, [, ], ^, %, /, ?, ~, $ 这十个字符有特殊含义, 如果对这十个字符进行匹配, 需要添加 \

查找时的常用操作

查找逻辑

/pattern/[e]

查找实例

还有一种是使用 global 命令: :g/pattern/d , 含义是对 patter 进行匹配搜索, 然后执行命令 delete, 也是基于查找的

替换

替换元字符

替换逻辑

[range]s/pattern/string/[c,e,g,i]

变量替换

在表达式中可以使用 \(\) 将表达式括起来, 然后既可在后面使用 \1 \2 来依次访问由 \(\) 包围起来的内容.

例: :s/\(\w\+\)\s\+\(\w\+\)/\2\t\1 表示将 data1 data2 修改为 data2 data1

替换实例

替换时系统会对用户进行询问, 有 (y/n/a/q/1/^E/^Y)

多文件查找与替换

多文件操作的基础是一定要 设置好工作目录, 因为添加文件到操作列表是以当前路径下的文件进行判断筛选的, 设置当前路径可使用以下方式:

多文件查找

himg

逻辑

vimgrep /pattern/[g][j] <range>

查找的结果使用 quick-fix 来进行展示, 可使用 :copen 查看所有结果项并进行相应跳转, 具体操作参考 神级编辑器 Vim 使用-操作篇

实例

quickfix-list 与 location-list 的区别

quickfix-list 是一个完整的窗口, 可以移动上下光标, 按下 enter 进行打开文件

location-list 只是一个局部的显示区域, 只能简单显示查找结果的信息, 目前看来没有必要使用此选项

多文件替换

多文件替换所依赖的是 vim 中的参数列表概念, 这里仅对流程命令进行演示, 具体的参数列表操作参考 神级编辑器 Vim 使用-操作篇

最后

本文作者 Hanley Lee, 首发于 闪耀旅途, 如果对本文比较认可, 欢迎 Follow

上一篇下一篇

猜你喜欢

热点阅读