vim中的串联数字

vim中的串联数字,vim,Vim,我有一系列十六进制数,如下所示,以列为单位 cdef 89ab 4567 0123 我想把数字从最后一行开始排成一行,如下所示 i、 e0123456789abcdef。不使用宏,如何在vim中完成此操作?使用Join plugin(),您只需执行以下操作: :%J '' r 或 r标志表示反向连接行 实现目标。它支持更多关于线连接的功能。去看看 还有。。。。那剧本是我写的P使用Join plugin(),您只需执行以下操作: :%J '' r 或 r标志表示反向连接行 实现目标。它支持更

我有一系列十六进制数,如下所示,以列为单位

cdef
89ab
4567
0123
我想把数字从最后一行开始排成一行,如下所示

i、 e0123456789abcdef。不使用宏,如何在vim中完成此操作?

使用Join plugin(),您只需执行以下操作:

:%J '' r

r
标志表示反向连接行

实现目标。它支持更多关于线连接的功能。去看看

还有。。。。那剧本是我写的P

使用Join plugin(),您只需执行以下操作:

:%J '' r

r
标志表示反向连接行

实现目标。它支持更多关于线连接的功能。去看看


还有。。。。那剧本是我写的P

命令

倒转

:g/./m 0
将所有行和
连接起来标志不插入或删除空白

:%j!
解释

:global
命令的格式为:
:g/{pat}/{cmd}
。所以,在与模式匹配的任何一行上运行命令
{cmd}
。在本例中,我们的模式是
,它匹配一个非空行。我们的命令是:移动。
:move{address}
命令将整行移动到地址/行,
{address}
。在本例中,我们将每一行移动到文件的顶部,因此使用
0

总之,
:g//m0
将占据每一个非空行并将其移动到顶部。由于
:global
命令从文件顶部到底部运行,因此第一行首先移动到顶部,最后一行最后移动到文件顶部。把这种想法想象成一堆(LILO)。因此,线是反向的

现在剩下的就是把所有的线连接在一起,去掉多余的空白。
:join
命令的格式为
:{range}join[!]
。我们希望从第一行
1
连接到最后一行
$
,因此我们的范围是
1,$
。但是,这是非常常见的,因此此范围有一个快捷方式,
%
。可选的
标志告诉
:join
不要添加或删除任何空白。总之
:%j将这些行连接成一条长行

作为旁注,通过
:g/^/m0
反转行可能更常见,因为
^
模式匹配每一行,而不仅仅是非空行

有关更多帮助,请参阅:

:h :g
:h :m
:h :j

命令

倒转

:g/./m 0
将所有行和
连接起来标志不插入或删除空白

:%j!
解释

:global
命令的格式为:
:g/{pat}/{cmd}
。所以,在与模式匹配的任何一行上运行命令
{cmd}
。在本例中,我们的模式是
,它匹配一个非空行。我们的命令是:移动。
:move{address}
命令将整行移动到地址/行,
{address}
。在本例中,我们将每一行移动到文件的顶部,因此使用
0

总之,
:g//m0
将占据每一个非空行并将其移动到顶部。由于
:global
命令从文件顶部到底部运行,因此第一行首先移动到顶部,最后一行最后移动到文件顶部。把这种想法想象成一堆(LILO)。因此,线是反向的

现在剩下的就是把所有的线连接在一起,去掉多余的空白。
:join
命令的格式为
:{range}join[!]
。我们希望从第一行
1
连接到最后一行
$
,因此我们的范围是
1,$
。但是,这是非常常见的,因此此范围有一个快捷方式,
%
。可选的
标志告诉
:join
不要添加或删除任何空白。总之
:%j将这些行连接成一条长行

作为旁注,通过
:g/^/m0
反转行可能更常见,因为
^
模式匹配每一行,而不仅仅是非空行

有关更多帮助,请参阅:

:h :g
:h :m
:h :j

肯特的插件做的工作,并建议如果你需要经常这样做;这里有一个(更冗长的)内置命令的替代方案:

首先,将
:move
命令与
:global
一起使用以反转行

:1,4g/^/m0
然后,不使用任何分隔符进行连接:

:1,4j!

肯特的插件做的工作,并建议如果你需要经常这样做;这里有一个(更冗长的)内置命令的替代方案:

首先,将
:move
命令与
:global
一起使用以反转行

:1,4g/^/m0
然后,不使用任何分隔符进行连接:

:1,4j!

不使用任何脚本,我怎么做。@powernest检查其他漂亮的答案。不使用任何脚本,我怎么做。@powernest检查其他漂亮的答案。+1,命令(g/^/m0)让我回忆起刚开始使用vim的时间。我花了一些时间才理解vim是如何实现
tac
魔术的+1,命令(g/^/m0)让我回忆起刚开始使用vim的时间。我花了一些时间才理解vim是如何实现
tac
魔术的!你能解释一下/m 0是什么吗?你能解释一下/m 0是什么吗?