如何通过vim脚本获取光标下的文本对象?

3
我已经找到了如何获取光标下的单词/WORD字符,或整行(getline("."))的答案。如何获取光标下给定的文本对象?
更具体地说,我想获取vi'选择的内容,并在函数中使用这些字符(而不会弄乱寄存器)。
1个回答

4
最简单直接的方法是将内容复制到寄存器中,确保保存并恢复原始内容。
let l:save_clipboard = &clipboard
set clipboard= " Avoid clobbering the selection and clipboard registers.
let l:save_reg = getreg('"')
let l:save_regmode = getregtype('"')
normal! yi'
let l:text = @@ " Your text object contents are here.
call setreg('"', l:save_reg, l:save_regmode)
let &clipboard = l:save_clipboard

2
嗯,当我发现 expand("<cWORD>") 后,我期望会有类似那些特殊表达式的东西。这个答案确实很简单明了,谢谢。 - Yosh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接