右对齐由空格分隔的特定列



示例:

Monte Bianco 4.807 France/Italy
Monte Rosa 4.634 Italy/Switzerland
Dom 4.545 Switzerland/Italy
Weisshorn 4.505 Switzerland
Cervino (Matterhorn) 4.478 Italy/Switzerland
Suphan Dagi 4.434 Turkey   

我正在尝试创建2个新的菜单选项(在menu.vim中):

  • 右对齐第一列
  • 右对齐最后一列

我找不到如何只对表中间的第一列、最后一列或特定列进行右对齐。

Monte Bianco 4.807              France/Italy
Monte Rosa 4.634           Italy/Switzerland
Dom 4.545                  Switzerland/Italy
Weisshorn 4.505                  Switzerland
Cervino (Matterhorn) 4.478 Italy/Switzerland
Suphan Dagi 4.434                     Turkey   

我知道我可以用这个来对齐最新的列

Tabular /^(.{-}s{1,}){1,}/l0l0r0 

但我想知道的是如何在行尾前找到最新的align参数
(p.e.在上面的例子"空格"中),并在此之后将所有文本右对齐(不计算列数)。

这可能吗?

我完全不知道如何只对第一列或特定列进行右对齐。

为了右对齐第一个以空格分隔的列,剩下的其中向左对齐,使用以下:Tabular命令

:Tab/^S*s+zs/r1l0l0

类似地,要右对齐最后一列,请运行

:Tab/s@<!zes+S*$/l1l0r0

如果列分隔符必须至少有两个空格字符,请修改命令如下。

:Tab/(s{2,}.*)@<!s{2,}zs/r1l0l0

:Tab/s@<!zes{2,}(.*s{2,})@!/l1l0r0

最新更新