Vim 如何对齐以最大数字或最大字符串为对齐指示符的列?
在vim中,如何右对齐(和左对齐?)一组数字或文本,如下所示: 发件人: 为此:Vim 如何对齐以最大数字或最大字符串为对齐指示符的列?,vim,alignment,Vim,Alignment,在vim中,如何右对齐(和左对齐?)一组数字或文本,如下所示: 发件人: 为此: 45 209 25 1 2 4 2 3 34 5 300 5 34 120 34 12 这意味着每列中的最大数字或最大字符串不会移动。 第一列是45+34,第二列是209+120,第三列是300,最后一列是12。您可以查看插件。所以如果你有 45 209 25 1 2 4 2 3 34 5 300 5 34 120 34 12 只需
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
这意味着每列中的最大数字或最大字符串不会移动。第一列是45+34,第二列是209+120,第三列是300,最后一列是12。您可以查看插件。所以如果你有
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
只需在视觉模式下选择这些行并键入:Tab/
,它就会将其格式化为
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
而且,看起来现在没有相等数量的空格来分隔这些数字。因此,在使用插件之前,请将所有多个空格替换为单个空格:
看看
align
插件,它可以做到这一点,还有更多。伟大的工具在您的实用腰带
发现
经过认真的帮助/阅读,我找到了正确的AlignCtrl
映射。。。
目视选择表格,例如使用ggVG
,然后执行\Tsp
即Tsp
然后我得到这个:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
从vimhelp:
\Tsp : use Align to make a table separated by blanks |alignmap-Tsp|
(right justified)
使用,您可以选择要对齐并点击的行:
Tsp
从Align.txt
\Tsp : use Align to make a table separated by blanks |alignmap-Tsp|
(right justified)
(帮助中提到了\
,因为它是默认的引线,但如果您将其更改为其他引线,则必须相应地进行调整)
仅在我的安装中尝试,我得到以下结果:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
在我看来,Align插件很棒,但是“Align maps”和各种命令并不容易记住。我认为最好的做法是首先使用
:{range}s/ \+/ /g
然后调用制表
:Tab / /r1
或者使用Align和AlignMaps插件将
r
更改为l
:选择使用V,然后\anum(AlignMaps附带Align)。anum的一个优点是它还可以处理小数点(逗号)和科学记数法 您是否使用空格来获取输入?当我使用制表符输入数字列时,它们自然是左对齐的。@inTide,yes空格(我在缓冲区中不使用制表符)请查看我的问题。(顺便说一句,我有对齐和列表插件,但不知道如何解决我的问题)。是的,我同意。DrChip(他为什么称自己为Dr.chip?;))创造了好东西,但大多数东西都很难找到,很难理解,也不总是可以使用。align插件很不错,但Tabularize插件(yoda提到)要高得多。你的插件很棒。它可以做很多事情,但比表格更难理解。我发现的另一个优点是,不能使用menu.vim或vimrc中的映射将它们放在命令行p.e中。还有。。。。该插件使用了大量以不同字母开头的地图。我希望它们更容易记住(或由用户更改)。我也不喜欢DrChip的菜单。(更糟糕的是……我以前已经试过了,唯一不知道的是我必须选择linewise。)
:{range}s/ \+/ /g
:Tab / /r1