1

假设我有看起来像这样的 PHP 代码

$values = array(
    'foo' => 'bar',
    'longfoo' => 'otherbar',
    'baz' => 'foobar,
);

Vim 中有没有办法对齐数组值并将其格式化如下?

$values = array(
    'foo'       => 'bar',
    'longfoo'   => 'otherbar',
    'baz'       => 'foobar,
);

小提示:我使用空格,而不是制表符来缩进。

4

3 回答 3

7

表格插件将使这变得容易。安装后,您可以简单地运行

:Tabularize /=>/

而在要对齐的任何行上。如果您经常使用相同的模式,您甚至可以设置映射以更快地完成此操作。

于 2013-08-11T13:34:48.077 回答
5

Tabularize 听起来像是要走的路,但我也会提到 Unix 实用程序column,它非常漂亮,应该让更多人知道。
显然是 Unix 特定的。(在 openSuSE 12.3 上,它位于 util-linux 包中;在其他发行版上可能不同。)
要在 vim 中调用它,请在视觉上选择要对齐的行,然后
:!column -t
使用 vim 在您点击时为您填充的视觉范围:选择行后,您会得到:(
:'<,'>!column -t
默认情况下,它以空格分隔,但您可以使用该-s <separator>选项进行更改。)
它对齐内容,使每列的长度足以容纳其最长的成员。

于 2013-08-11T22:53:56.140 回答
2

我建议插件Align。它有一些非常方便的快捷方式,比如\tsp可以让您快速按空格对齐列。

于 2013-08-12T00:39:09.150 回答