我希望能够为现有的单字母标记设置其他标记。因此,我可以解决我目前面临的两个问题:
标记在脚本中设置,我不想破坏脚本用户已设置的标记
我可以设置无限数量的标记,这样我就不必计算它们(我将它们命名为"script_mrk_" . s:mark_count
)。
所以,如果表达为函数调用,我可能正在寻找一些东西
setPrivateMark(l:mark_name, l:line, l:pos)
和
let line_pos = getPrivateMark(l:mark_name)
当然,在使用setPrivateMark
之前和getPrivateMark(...)
之前设置解决方案时,解决方案应该能够抵触标记上方缓冲区的更改。
有这样的事吗?
答案 0 :(得分:2)
Vim仅在更改时更新其内置标记的位置;如果您需要该功能,则必须使用这些功能,并且仅限于现有标记的数量。
没有办法解决这个问题;对于简单的用户编辑,您可以挂钩CursorMovedI
事件并调整您记录的位置,但无法挂钩:append
之类的Ex命令。
如果插件需要几个标记,最好允许用户配置脚本使用的标记(例如通过g:MyPlugin_UseMarks
变量);几乎没有人一直使用所有的标记,但不同的人有不同的偏好。
答案 1 :(得分:0)
无限标记我不知道,但你可以创建一个字典类型,键是你的“标记”名称,值是光标的位置。
位置可以通过
获取和设置getpos() and setpos()
或者你想要实际代码?