如何用vim显示数字列的列数

How to display the column number of columns of numbers with vim

我有一个文件,其中只有用空格分隔的数字列。像这样:

 0.0000000000   21.8066943617    0.0000000000
21.9391475974    0.0000000000   22.5951998271
 0.0000000000   22.7253887380    0.0000000000 

如何在Vim中显示光标的当前列号。不是每个字符的列,而是数字列的列数。

这是一种方法:抓取当前行的文本,直到光标位置,然后执行文本操作以将每个文本列压缩为单个字符,然后对字符进行计数。

:let textBeforeCursor = strpart(getline('.'), 0, col('.') - 1)
:let reduceColumnToSingleChar = substitute(textBeforeCursor, '\s*\S*', 'x', 'g')
:echo len(reduceColumnToSingleChar)

如果你把它放到一个:function中,它可以很容易地被映射调用。

如果您将 :echo 更改为 :return,您甚至可以将其包含在您的 'statusline' 中(通过 set statusline+=\ %{ColumnCount()}),以便它在您移动时更新缓冲区。