将单行代码转换为块格式

时间:2012-12-11 19:58:27

标签: vim sed

我有一堆恶意软件,我设法将一个非常糟糕的javascript变成了一行。我正在寻找一种方法来将整个事情分解为更易于管理的外观。我可以在vim / sed中执行递归调用,在该调用中,我会根据括号将代码分解成束并根据自己的喜好对其进行格式化吗?

2 个答案:

答案 0 :(得分:4)

如果它是一行,==只是正确地重新格式化了吗?

如果没有(我对Vim格式的具体细节并不熟悉),根据我对JavaScript的了解,您可以在{;和{{1}之后添加换行符并且对此有很长的了解。

}

然后执行:%s/[{;}]/&\r/g 转到文件顶部并将其格式化到底部。

如果你不介意多做一些工作,如果事后的自动配置无法工作,你也可以做gg=G后跟/[{;}]的事情,这将清除'a '注册然后在该寄存器中定义一个宏,该宏在找到的字符之后命中输入,命中转义,然后转到下一个匹配并再次执行。它有点狡猾,但可能足以满足您的需求。 (顺便说一句,按下回车键和退出键,而不是在上面的字符串中键入带角括号的文字。)

答案 1 :(得分:2)

好吧,您可以使用基于括号和分号的一些替换,但恶意软件作者(以及自我重要的JS忍者摇滚明星)喜欢删除它们,因此这种方法可能对您的代码不起作用。

像:

:%s/{/{\r
:%s/};/\r};

您是否尝试过jsbeautifier