加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Vim内交错行?

发布时间:2020-12-16 01:44:44 所属栏目:安全 来源:网络整理
导读:给定一个行数偶数的文件,怎么样呢 将第二半的行交错到第一行 半?例如,从这个: abc123 对此: a1b2c3 一种可能的解决方案是将这两半写入 分隔文件,然后使用粘贴实用程序. :1,3w a | 4,6w b:%!paste -d n a b 但是,我想找到一种简单的方法 Vim – 使用本机
给定一个行数偶数的文件,怎么样呢
将第二半的行交错到第一行
半?例如,从这个:

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.

考虑到我们将光标放在第一行
下半场,这一行必须在第一行之前
从上半场开始,我们可以在那里移动: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读