我的数字列如下
-0.01343
0.002
-1.1234
我想在vi编辑器中对齐列,如下所示
-0.01343
0.002
-1.1234
答案 0 :(得分:1)
因此,您希望在每行之前插入一个不以减号开头的空格:
适当的命令是:%s/^\([^-]\)/ \1/
这打破了:
:
- 启动命令
%s
- 所有行的正则表达式
/^\([^-]\)
- 匹配行的开头,后跟-
以外的任何字符,我们称之为第1组
/ \1
- 替换为空格,后跟第1组中的任何内容
/
- 结束正则表达式,每行执行不超过一次
其他选择:
如果在可视化块中选择了预期的行,则键入:
将使用'<,'>
启动命令。然后从s
(无%
)开始移至正则表达式,它将仅应用于选定的行。
如果您以/c
结束,则会在每次更换时要求确认。如果以/g
结尾,则每行可以多次使用(如果适用)。 /gc
有效。
如果您希望小数点对齐,而不是第一个数字,则更复杂,并且可能无法使用vi或vim中的简单命令完成。