如何将光标移动到缓冲区中的第n个字节?

如何根据字节偏移而不是行和列显示标尺中的当前光标位置? (后续问题:可以同时显示十进制和十六进制吗?)

#1 楼

:goto 2356

跳转到缓冲区中的第2356个字节。

使用%o'statusline'中的'rulerformat'字段显示光标下字符的字节数。

使用%O以十六进制格式显示值。

参考:

:help :goto
:help 'statusline'
:help 'rulerformat'


#2 楼

要显示字节位置,可以使用以下命令
:echo line2byte(line("."))+col(".")-1

请参阅问题:获取vim中当前缓冲区的偏移量

评论


Vivian De Smedt可能在行尾忘记了()。让我猜想他的意思是:echo(eval(line2byte(line(“。”))+ col(“。”)-1))

– Sam Cenzored
20 Dec 9'在8:55



我宁愿建议使用:echo eval(line2byte(line(“。”))+ col(“。”)-1)(例如,删除第一个括号)

–克里斯蒂安·布拉班德(Christian Brabandt)
20 Dec 9'在9:16

@SamCenzored我已经将您的答案转换为评论,因为您似乎正在澄清一个帖子(请参阅vi.stackexchange.com/help/privileges/comment)。欢迎来到Vi和Vim!

– D. Ben Knoble♦
20 Dec 9'在17:38