2012-10-18 34 views
0

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" 

我只是沒有找到一種方法來查找給定語法區域的開始和結束位置(行和列)。

回答

1

例如:

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

如果你拔它,你可以這樣做:

echo @" ->  prints register " (default) 
+0

這是個好主意。既然它是用於vim腳本而不是正常的編輯,我寧願不要打破註冊表。也許我可以解決一個不太常用的註冊表... –