Vim 把这两个柱子换成几行?

Vim 把这两个柱子换成几行?,vim,Vim,我从网页复制粘贴了一些数据: x y 0 9 2 22.6 4 44.2 5 62.1 7 96.9 8 113.4 10 133.4 11 137.6 15 148.4 17 149.3 我想对数据进行转置和轻微转换,例如: x = 0,2,4,... y = 9, 22.6, 44.2... 我知道如何使用v模式在每一列后面加逗号,但我不知道当我有两位数或一列字符长

我从网页复制粘贴了一些数据:

x       y
0       9
2       22.6
4       44.2
5       62.1
7       96.9
8       113.4
10      133.4
11      137.6
15      148.4
17      149.3
我想对数据进行转置和轻微转换,例如:

x = 0,2,4,...
y = 9, 22.6, 44.2...
我知道如何使用v模式在每一列后面加逗号,但我不知道当我有两位数或一列字符长度混合时该怎么做

我更关心的是如何转置,如果这是我想要的命令的话

如何将数据转换为所需的格式:

x = 0,2,4,...
y = 9, 22.6, 44.2...

我的方法是使用视觉块模式,并使用
Ctrl
+
v
和 应用
J
命令,并使用替换进行清理。首先选择 在可视块中选择第二列并将其删除,然后将其粘贴到x列下方:

x   
0   
2   
4   
5   
7   
8   
10  
11  
15  
17  

y
9
22.6
44.2
62.1
96.9
113.4
133.4
137.6
148.4
149.3
然后,您可以在每个块上执行
vipJ
,以选择该数据并将其放在一个块上 行(仅供参考:
vipJ
将进入
v
isual模式,选择
i
nside
p
aragraph, 然后,
J
加入这些行):

快速替换
:s/\s\+/,/g
可以用逗号替换空格:

, x, 0, 2, 4, 5, 7, 8, 10, 11, 15, 17, 

, y, 9, 22.6, 44.2, 62.1, 96.9, 113.4, 133.4, 137.6, 148.4, 149.3
然后,您只需清除多余的逗号,并添加
=
符号,然后删除 空行等:

x = 0, 2, 4, 5, 7, 8, 10, 11, 15, 17
y = 9, 22.6, 44.2, 62.1, 96.9, 113.4, 133.4, 137.6, 148.4, 149.3
如果有许多列,您可能不想重复此过程 以上每一个。。。在这种情况下,您可能可以将上述内容记录为 以可重复的方式执行宏

如果需要,可以运行外部命令(在视觉选择上,或
通过一个范围)
”我的方法是使用视觉块模式,并使用
Ctrl
+
v
和 应用
J
命令,并使用替换进行清理。首先选择 在可视块中选择第二列并将其删除,然后将其粘贴到x列下方:

x   
0   
2   
4   
5   
7   
8   
10  
11  
15  
17  

y
9
22.6
44.2
62.1
96.9
113.4
133.4
137.6
148.4
149.3
然后,您可以在每个块上执行
vipJ
,以选择该数据并将其放在一个块上 行(仅供参考:
vipJ
将进入
v
isual模式,选择
i
nside
p
aragraph, 然后,
J
加入这些行):

快速替换
:s/\s\+/,/g
可以用逗号替换空格:

, x, 0, 2, 4, 5, 7, 8, 10, 11, 15, 17, 

, y, 9, 22.6, 44.2, 62.1, 96.9, 113.4, 133.4, 137.6, 148.4, 149.3
然后,您只需清除多余的逗号,并添加
=
符号,然后删除 空行等:

x = 0, 2, 4, 5, 7, 8, 10, 11, 15, 17
y = 9, 22.6, 44.2, 62.1, 96.9, 113.4, 133.4, 137.6, 148.4, 149.3
如果有许多列,您可能不想重复此过程 以上每一个。。。在这种情况下,您可能可以将上述内容记录为 以可重复的方式执行宏

如果需要,可以运行外部命令(在视觉选择上,或
通过一个范围)
'Hi,谢谢,我得到了
vipJ
(以前从未使用过,那里发生了什么?)然后当你说“越过(e)后面的另一列:”我不知道怎么做?需要一些帮助吗?我在更新后的回答中做得更好。嗨,谢谢,我得到了
vipJ
(以前从未使用过,那里发生了什么?)然后当你说“越过(e)后面的另一列:”我不知道怎么做?需要一些人手在这里我做的事情在更新的答案更好的顺序