我們都知道ci"
ci'
ci(
ci[
...一樣。非常方便,在日常的編輯,我發現了一些奇怪的事情,並檢查了幫助,沒」找不到爲什麼爲什麼詞」和CI(,CI {......不同的表現?
說,我有一個文件:
foo "target"
foo 'target'
foo (target)
foo {target}
foo [target]
foo <target>
如果我的光標在開始每一行的,(在「f
」),然後我鍵入詞」,詞',ci(...
cix
只適用於引號(單或雙),不適用於括號。他們爲什麼表現不同?
(dix
,vix
相同)
與--noplugin測試,VIM 7.3
謝謝。
更新
感謝@romainl的答案。我至今還不清楚哪些
檢查這個例子中,「在vim對處理」:
foo "targ\"eti\" some\"thing else "
如果我有像上面一條線,I型ci"
,不管光標在開頭或引號之間,它完美的作品,似乎vim確實有「配對」的想法?
這可能是你的意思嗎?
foo "target x some"thing else "
foo (target x some(thing else)
我具有上述兩行,如果(光標在x
)I型ci"
和ci(
,什麼都沒有發生到第二線,但第一行變成:
foo "I"thing else " (I is cursor)
Vim不配對引號。它使用的啓發法非常簡單:向左掃描以找到''''或''',如果沒有命中,則向右重複,然後再向右重複以找到結尾引號。從未考慮到。 – glts
另請參見[我的答案](http://stackoverflow.com/a/7804666/254635)「[在Vim中從括號外選擇文本內部的文本](http://stackoverflow.com/q/7803905/254635)」。 –
@ib。並提供意見的thx。給予好評! – Kent