假设我有一个看起来像这样的PHP代码
$values = array(
'foo' => 'bar',
'longfoo' => 'otherbar',
'baz' => 'foobar,
);
在Vim中是否有办法将数组值对齐并将其格式化如下?
$values = array(
'foo' => 'bar',
'longfoo' => 'otherbar',
'baz' => 'foobar,
);
次要注意:我使用空格,而不是标签进行缩进。
答案 0 :(得分:6)
答案 1 :(得分:4)
Tabularize听起来像是要走的路,但我还会提到Unix实用程序column
,它非常漂亮,更多人应该知道。
显然是Unix特有的。 (在openSuSE 12.3上,它在util-linux包中;在其他发行版上可能有所不同。)
要在vim中调用它,请在视觉上选择要对齐的行,然后选择
:!column -t
因此,当您使用选定的行点击:
时,vim会为您填充视觉范围,您会得到:
:'<,'>!column -t
(默认情况下,它在空格上分隔,但您可以使用-s <separator>
选项进行更改。)
它使对齐的事情使得每列对于其最长的成员来说足够长。
答案 2 :(得分:2)
我建议使用插件Align。它有一些非常方便的快捷方式,例如\tsp
可以让您快速按空格对齐列。