在光标下获取整个字符串文字

时间:2012-10-18 22:12:58

标签: vim

Vim有expand("<cword>")来获取光标下的“单词”。如果光标在带引号的字符串文字上,你如何定义一个函数来获取引号之间的所有内容?

鉴于这种情况:

foo = "this string has spaces"
          ^ cursor is here

我想做

:echo GetStringUnderCursor()

并查看

this string has spaces

<小时/> 编辑: 我看到你可以检查光标是否在带有这个咒语的字符串区域

synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") == "String"

我还没有找到一种方法来查找给定语法区域的开始和结束位置(line和col)。

1 个答案:

答案 0 :(得分:1)

例如:

vi"    ->    visual select all inside the quotes
ci"    ->    change all inside the quotes
yi"    ->    yank all inside the quotes

如果你猛拉它,你可以这样做:

echo @"    ->     prints register " (default)