VIM 删除奇数行,删除偶数行以及奇数行和偶数行合并

vim奇偶数行操作

思路很简单,就是一次匹配两行,然后删除奇数行,删除偶数行或者两行合并。

删除奇数行

1
:%s/^.*$\\n\\(^.*$\\)/\\1/g

删除偶数行

1
:%s/\\(^.*$\\)\\n^.*$/\\1/g

奇数行和偶数行合并,以空格分格

1
:%s/\\(^.*$\\)\\n\\(^.*$\\)/\\1 \\2/g

要点:

主要就是使用正则表达式的分组捕获特性,小括号round brackets( 和 )用于捕获匹配的结果,存储到一个内部数组内,
然后可以使用索引1,2,3,…来引用按顺序捕获的匹配。
在vim中,( 和 )必须用backslash转义,所以分别为\( 和 \),引用捕获的分组使用\1,\2,\3,…
而\n匹配换行符,上面的命令就不难理解了。