在 vim 中创建 1 列中的 2 列
Create 2 columns out of 1 in vim
我有一个 2 个非常长的串联数组:
["MyHashMap"
"remove"
"put"
"remove"]
[[]
[27]
[65,65]
[19]]
我只是进入可视化模式,y
第二个数组,然后回到第一行,到它的末尾,添加 space 并点击 p
.变成:
["MyHashMap"
[[]
[27]
[65,65]
[19]]
"remove"
"put"
"remove"]
我想要的输出是:
["MyHashMap" [[]
"remove" [27]
"put" [65,65]
"remove"] [19]]
我怎样才能做到这一点?
:set virtualedit=all
这样你就可以将光标移动到没有字符的地方(越过行尾)。
将光标移动到第 5 行的第一列,然后使用 CTRL-V
进入可视块模式。 Select 最后四行的内容。按 d
删除选择。
将光标移动到第一行,您想要第二列的位置。按 p
粘贴。
所以...回到您的原始数据格式(为了完整起见,我添加了一个额外的“行”):
这里是数据:
$ cat yuck
["MyHashMap","remove","put","put"]
["MyMashNap","mover","gut","hut"]
[[],44],[95,30]]
这里是一个 awk 脚本:
$ cat a.f
BEGIN{
FS=","
}
{
for (f = 1; f <= NF; f++) { a[NR, f] = $f }
}
NF > nf { nf = NF }
END {
for (f = 1; f <= nf; f++) {
for (r = 1; r <= NR; r++) {
printf a[r, f] (r==NR ? RS : OFS)
}
}
}
以及如何 运行 它:
$ awk -f a.f yuck | column -t
["MyHashMap" ["MyMashNap" [[]
"remove" "mover" 44]
"put" "gut" [95
"put"] "hut"] 30]]
使用视觉块选择:
如果你在第一行:
4j ............. jump to line five
Ctrl-v ......... start visual block
3j$ ............ select the end of the paragraph
dgg ............ delete and goes to the first line
A<Space> ....... add an extra space
<Esc>p ......... paste deleted block
我有一个 2 个非常长的串联数组:
["MyHashMap"
"remove"
"put"
"remove"]
[[]
[27]
[65,65]
[19]]
我只是进入可视化模式,y
第二个数组,然后回到第一行,到它的末尾,添加 space 并点击 p
.变成:
["MyHashMap"
[[]
[27]
[65,65]
[19]]
"remove"
"put"
"remove"]
我想要的输出是:
["MyHashMap" [[]
"remove" [27]
"put" [65,65]
"remove"] [19]]
我怎样才能做到这一点?
:set virtualedit=all
这样你就可以将光标移动到没有字符的地方(越过行尾)。
将光标移动到第 5 行的第一列,然后使用 CTRL-V
进入可视块模式。 Select 最后四行的内容。按 d
删除选择。
将光标移动到第一行,您想要第二列的位置。按 p
粘贴。
所以...回到您的原始数据格式(为了完整起见,我添加了一个额外的“行”):
这里是数据:
$ cat yuck
["MyHashMap","remove","put","put"]
["MyMashNap","mover","gut","hut"]
[[],44],[95,30]]
这里是一个 awk 脚本:
$ cat a.f
BEGIN{
FS=","
}
{
for (f = 1; f <= NF; f++) { a[NR, f] = $f }
}
NF > nf { nf = NF }
END {
for (f = 1; f <= nf; f++) {
for (r = 1; r <= NR; r++) {
printf a[r, f] (r==NR ? RS : OFS)
}
}
}
以及如何 运行 它:
$ awk -f a.f yuck | column -t
["MyHashMap" ["MyMashNap" [[]
"remove" "mover" 44]
"put" "gut" [95
"put"] "hut"] 30]]
使用视觉块选择:
如果你在第一行:
4j ............. jump to line five
Ctrl-v ......... start visual block
3j$ ............ select the end of the paragraph
dgg ............ delete and goes to the first line
A<Space> ....... add an extra space
<Esc>p ......... paste deleted block