给定一个行数偶数的文件,怎么样呢
将第二半的行交错到第一行
半?例如,从这个:
将第二半的行交错到第一行
半?例如,从这个:
a b c 1 2 3
对此:
a 1 b 2 c 3
一种可能的解决方案是将这两半写入
分隔文件,然后使用粘贴实用程序.
:1,3w a | 4,6w b :%!paste -d \\n a b
但是,我想找到一种简单的方法
Vim – 使用本机命令.
解决方法
:g命令经常用于迭代行和
执行一些命令.在这种情况下,它可以用于
迭代文件后半部分的行,而
从上半部分到适当的移动线
相对位置:m.
执行一些命令.在这种情况下,它可以用于
迭代文件后半部分的行,而
从上半部分到适当的移动线
相对位置:m.
考虑到我们将光标放在第一行
下半场,这一行必须在第一行之前
从上半场开始,我们可以在那里移动:1 m -1
(将第1行移动到与光标相关的位置-1).后
这个,第1行现在应该在第二行之前
下半场.因此,移动光标是一个问题
下来并重复这个过程,方便地执行
:G.简而言之,首先跳到第二行的第一行
一半与50%然后:
:,$g/^/1m-1
作为一个占用整个块范围的命令
隔行扫描(两半)或默认为整个文件:
command! -range=% Interleave execute 'keeppatterns' \ (<line2>-<line1>+1)/2+<line1> ',' <line2> \ 'g/^/<line1> move -1'
:Interleave
注意:: Interleave使用:keeppatterns来防止搜索寄存器和历史变化. :keeppatterns需要Vim 7.4.083
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。