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

时间:2014-04-26 16:54:04

标签: vim

我找到了如何获取the word/WORD under the cursorthe character under the cursor或整行(getline("."))的答案。如何在光标下获取给定的文本对象?

更具体地说,我希望获得vi'选择的内容,并在函数中使用这些字符(不会弄乱寄存器)。

1 个答案:

答案 0 :(得分:3)

最简单,最直接的确是通过y到寄存器;只需确保保存并恢复原始内容。

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