gv
可用于使用先前的选择启动可视模式。边界存储在<
和>
标记中。但标记仅包含文件的(行,列),这不足以恢复视觉选择区域。
例如,<
=(1,0)和>
=(2,2)可能意味着可视块选择区域:
XXX foo bar
XXX quux
或视觉角色选择区域:
XXX XXX XXX
XXX quux
或视线选择区域:
XXX XXX XXX
XXX XXXX
此外,还必须恢复光标位置。
Vim在哪里存储有关最后一个Visual子模式和光标位置的信息以恢复视觉选择?
答案 0 :(得分:3)
'<
和'>
标记中。visualmode()
。gv
之外)。如果这不仅仅是一个理论问题,请告诉我们您要实现的目标。
答案 1 :(得分:1)
它仅在源代码中存储它,它不公开
答案 2 :(得分:1)
这里提出的问题是“你想要实现的目标”。你想知道这个是什么?
然后vimdoc中有样本:http://vimdoc.sourceforge.net/htmldoc/map.html#:map-operator
if a:0 " Invoked from Visual mode, use '< and '> marks.
silent exe "normal! `<" . a:type . "`>y"
elseif a:type == 'line'
silent exe "normal! '[V']y"
elseif a:type == 'block'
silent exe "normal! `[\<C-V>`]y"
else
silent exe "normal! `[v`]y"
endif
您最好查看来源