gpt4 book ai didi

vim - 获取光标位置,占制表符

转载 作者:行者123 更新时间:2023-12-04 04:32:15 24 4
gpt4 key购买 nike

在我的 vim 插件中,我使用 Ruby 的 w.cursor 获取当前光标位置。 .

它给我的列号基于 1 的 tabsize。例如如果当前行是 \t\tfoo , 光标位于 f ,其位置将报告为 3。

我需要的是基于 8 制表符的光标位置(因为这是 Haskell 标准指定的)。所以,在上面的例子中,我需要列号 f为 17,独立于 ts设置。

我如何得到它?

最佳答案

注意!在 Vim 中,列指的是字节索引。 A <Tab>字符由单个 (0x09) 字节表示,即为 1。非 ASCII 字符(例如变音符号或汉字)将“占用”2、3 或更多(取决于编码)列,但在视觉上表示通过单/双细胞。

显然,您对屏幕宽度感兴趣(其中 <Tab> 可以占据 1..8 个单元格之间),Vim 的文档将其称为虚拟列,并且可以通过像 virtcol() 之类的函数访问。 ,以及最近的 strdisplaywidth() .

关于vim - 获取光标位置,占制表符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20396685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com