背景
问题
VimL是否有轮询当前视觉选择的方法?
目标
- return `TRUE` if there is currently a visual selection containing one or characters in the currently-active buffer.
- return `FALSE` if there is not currently a visual selection containing one or more characters in the currently-active buffer.
失败尝试
发布于 2015-04-20 10:31:38
因为您的问题是关于投票的,所以严格的回答是mode()。但轮询只在状态行计算期间或在触发的:autocmd事件处理程序中进行。
如果您含糊地引用的另一个函数是由自定义映射或命令调用的,则mode()对您没有帮助,因为在调用函数时,视觉模式已经被保留。™处理视觉选择的正确方法如下:
:'<,'>范围。在很少的情况下,您可能希望创建一个特殊的命令来处理可视选择,例如:Frobnize和:FrobnizeVisual,然后只使用:normal! gv来获取和处理所选内容。:nnoremap <Leader>x :<C-u>call Frobnize(0)<CR>
:xnoremap <Leader>x :<C-u>call Frobnize(1)<CR>
function! Frobnize( isVisualMode )
...TL/DR:你找不到这么方便的功能是有原因的,重新考虑一下你的方法。
https://stackoverflow.com/questions/29520714
复制相似问题