我正在寻找一种方法,有这样的随机文字
[a: b -> {a, b, c}, d<1, 2>, b: [2, 3], (a, b)]
重新格式化为更易读的内容,例如:
[
a: b -> {
a,
b,
c
},
d<1, 2>,
b: [
2,
3
],
(
a,
b
)
]
是否有人知道某些方法使用类似于示例的括号重新格式化文本?并不重要,格式与上面完全相同,只是为了便于阅读(文本比a
,b
或c
长得多。
目前,我正在使用此映射:
%j<CR>:%s/[\[{]\\|[\]}],\\|,/&\r/g<CR>gg=Ggg:nohls<CR>
效果不佳,需要额外清理。
答案 0 :(得分:1)
我不认为这是将通用文本拆分为多行组件的通用方法,就像您描述的那样。我有一个名为splitjoin的插件试图做类似的事情,但它适用于特定编程语言中的特定结构。例如,lists and tuples in python。如果您查看完整的帮助文件,您可能会发现它适合您,但我无法肯定地说。您可以直接重复使用某些splitting and joining functions。
我的另一个可能有帮助的插件是sideways,因为它为列表中的参数提供了一个文本对象(您可以在视觉上选择并在之后操作)。但是,在我的实验中,它似乎无法正确检测d<1, 2>
,因此您可能必须创建检测<>
括号的your own list definition(我不会将其设置为1 < 2
在一般插件中,因为->
等等。不幸的是,即便如此,在此之前它被{{1}}弄糊涂了。如果你在同一个列表中所有,我不认为这个插件可以提供帮助。
这不是一个解决方案,只是一个方向,我想。如果这是特定编程语言的代码,则可能有助于指定它是哪一种。