如何使用 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.
中的简单命令来完成
我有一列数字如下所示
-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.
中的简单命令来完成