Ответ 1
Если ваш vim скомпилирован с опцией +byte_offset
, то в Python script после обычного import vim
вы можете используйте, например:
vim.eval('line2byte(line("."))+col(".")')
чтобы получить смещение байта от начала файла положения курсора и аналогично для других меток. В более общем плане, если у вас есть пара строк/столбцов (при условии, что +byte_offset
как скомпилирован ваш vim), это способ получить смещение байта (там также есть функция byte2line
, чтобы перейти в другую сторону).
В то время как модуль vim делает большую функциональность доступной непосредственно для скриптов Python в vim, я обнаружил, что vim.eval
и vim.command
часто являются самым удобным (а иногда и единственным;) способом получить только насколько это необходимо;-). О, и я всегда стараюсь, чтобы vim был скомпилирован с + justabouteverything всякий раз, когда я могу; -).