这是对 question about deleting every second line in a file 的后续.
如何在 Vim 中实现:
之前:
aaa
bbb
ccc
ddd
eee
fff
(比如说,它是视觉选择的一部分。)
之后:
aaa
ccc
eee
bbb
ddd
fff
我怎样才能做到这种宏风格(删除每隔一行但存储 已删除的行进行缓冲,以便按顺序粘贴已删除的行)?
此外,如果您可以在视觉选择中做到这一点,那将是真正的 handy(解析某个文件)!
最佳答案
1. 当要重新排序的行是唯一出现在 缓冲区,可以使用命令
:g/^/+m$
2. 一般来说,当这些行被其他文本包围时, 可以选择要重新排序的目标行范围,然后运行
:exe"'<,'>g/^/+m"line("'>")
或选择除第一行以外的所有行进行重新排序 然后运行
:'<,'>-g/^/+m'<-
相反。 在任何一种情况下,重新排序都是在一次运行中高效完成的。
关于vim - 如何每隔一行删除,并在选择后粘贴删除的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355690/