VIM 编辑器实用技巧

发布于 2023-12-30

删除重复行

# 先对文本行进行排序
:sort
# 删除重复行
:g/^\(.*\)$\n\1$/d
# 或者
:g/\v^(.*)$\n\1$/d
# 或者
:g/\v^(.*)(\n\1)+$/d
  • \v: 打开 very magic 模式,这意味着正则表达式中的特殊字符不需要额外转义。
  • ^: 行的开头。
  • (.*): 匹配任意字符零次或多次,并将其保存到捕获组中。
  • $: 行的结尾。
  • \n: 换行符。
  • \1: 引用捕获组中的内容。
  • /d: 删除匹配的行。

这个正则表达式的目的是匹配两行中内容相同的情况。

发现一个更牛批的, :sort u 可以直接排序并自动删除重复行。

借助外部工具也可以, :% !uniq 同样可以删除重复行。