使用vim有效地重新格式化关联数组

时间:2018-07-26 13:03:21

标签: php vim

我需要帮助找出解决此问题的策略。我发现我经常将多行数组折叠成一行,或者将单行扩展成多行。

示例:

$ary = ["this"=>"is an", "associative"=>"array"];

成为

$ary = [
    "this" => "is an",
    "associative" => "array",
];

,反之亦然。请注意,在多行版本中,尾随逗号和=>周围的空格。

我不一定要提供有效的答案,而只是一些有关如何解决问题的提示。您将从替代开始吗?宏(递归?)? vimscript功能?

1 个答案:

答案 0 :(得分:2)

这是跨选择行进行替换的理想情况。我之所以这样认为是因为

  • 您对需要更改的内容有清晰的定义
  • 您知道更改后的样子
  • 您确切知道此更改应应用于哪些行

下面是解决方案一部分的示例(因为您不想要完整的答案,而是方法)

需要更改的内容:逗号+空格
您要替换的内容:逗号+换行符
您希望将其应用于哪些行:您手动选择的行

直观地选择行,然后按:来查看

:'<,'>

这是代表您的视觉选择的范围选择。添加到它看起来像这样:

:'<,'>s/, /,\r/g

说“在我已选择的行上用逗号+换行查找并替换所有逗号+空格”。

现在将此逻辑应用于您要更改的其他部分,例如车削
"=>"" => "

但是,您可能会发现最终答案有点笨重,因此,如果这是您经常遇到的样式问题,则可能希望将其映射到某些内容。