vim:为什么col()返回byte而不是column

时间:2013-10-17 08:32:37

标签: unicode vim

在编辑Unicode文本时,我意识到Vim函数col('.')返回行上的当前字节位置,而不是字符或列。所以这段代码不能正常工作:

let cur_column = col('.')
...
execute "normal! " . cur_column . '|'

每当我在非ASCII线上时,它就会将光标移动到错误的前向位置。

我正在使用airline插件,它向我显示状态行中的光标位置,并且还有字节位置,而不是字符。但是在没有任何插件的vim上它显示了行,字节字符,所以我认为存在获得正确信息的一些可能性。

1 个答案:

答案 0 :(得分:5)

您可以使用其他功能:

virtcol('.')

这是光标的屏幕列。