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

chu*_*uwy 1 unicode vim

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

let cur_column = col('.')
...
execute "normal! " . cur_column . '|'
Run Code Online (Sandbox Code Playgroud)

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

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

kev*_*kev 5

你可以使用另一个功能:

virtcol('.')
Run Code Online (Sandbox Code Playgroud)

这是光标的屏幕列.