我想得到的偏移量
- 当前光标位置
- 当前选择范围
在 vim 中,从文件的开头开始。我在 python 中执行此操作,因此提示如何使用 vim 的 python 脚本执行此操作将非常有帮助。
我以前使用 vim.current.. 来编写脚本,但它使用行和列而不是一般的偏移量。
我是否必须计算所有前面的行长度+当前行的数量,还是有更简单的方法?
如果您的 vim 是使用该+byte_offset
选项编译的,那么在通常的 Python 脚本中import vim
,您可以使用,例如:
vim.eval('line2byte(line("."))+col(".")')
从光标位置的文件开头获取字节偏移量,对于其他标记也是如此。更一般地说,如果你有一个行/列对(假设+byte_offset
是你的 vim 是如何编译的)是获取字节偏移量的方法(还有一个byte2line
函数可以采用另一种方式)。
vim.eval
虽然 vim 模块确实为 vim 中的 Python 脚本提供了许多直接可用的功能,但我发现这vim.command
通常是最方便的(有时也是唯一的;-)方法,可以根据需要深入了解;-)。哦,我总是尽量用 +justabouteverything 编译一个 vim;-)。
您可能还想查看statusline
设置。这会将再见偏移量添加到状态行:
set statusline+=%o
看:h statusline
请小心,因为默认状态行是空白的,并且通过将 %o 附加到它,您将失去所有默认值。