如何使用 vi 编辑器对齐列?

How to align a column using the vi editor?

我有一列数字如下所示

-0.01343
0.002
-1.1234

我想在 vi 编辑器中对齐列,如下所示

-0.01343
 0.002
-1.1234

所以,你想在每行前插入一个 space,而不是以减号开头:

合适的命令是:%s/^\([^-]\)/ /

这分解为:

: - 启动命令

%s - 所有行的正则表达式

/^\([^-]\) - 匹配行的开头,后跟 - 以外的任何字符,我们将其称为组 1

/ - 替换为 space 后跟组 1

中的任何内容

/ - 结束正则表达式,每行不超过一次

其他选项:

如果您 select 可视块中的预期行,键入 : 将以 '<,'> 启动命令。然后移动到以 s 开头的正则表达式(没有 %),它将仅适用于 selected 行。

如果您以 /c 结尾,它会在每次替换时要求确认。如果你以 /g 结束它,它会在适用的情况下每行工作多次。 /gc有效。

如果您希望对齐小数点而不是第一个数字,那就更复杂了,可能无法通过 vi 或 vim.

中的简单命令来完成