
假設有一行例如:
grep -ir "$@" * | grep -v "/.svn/" | grep -v "/inc/help/" | head -n 100
如果遊標位於第一個|
並且我想刪除until head
,我該如何用t來做到這一點?我知道我可以v/hea
選擇直到,hea
但是當我刪除文字時,我也會刪除h
前導head
。我可以只h
支援一個角色,但現在這是一系列的解決方法。它有效,但我想知道是否有更好的方法。
有沒有辦法依賴t
兩個或多個字元而不是單一字元?
答案1
嘗試這個:
:vnoremap / //b-1<left><left><left><left>
當您鍵入v
以直觀地選擇一個區域,然後鍵入/
以開始搜尋該區域的末端時,Vim 將輸入
//b-1
將遊標放在第二個 上進入命令列/
。然後鍵入 2 個或更多要用來終止該區域的字符,然後按 Enter 鍵。告訴b-1
Vim 搜尋該模式並將遊標放在 ( -1
)b
匹配開始之前的一個字元。看
:help search-offset
您不必繪製地圖/
。您可以使用地圖t
或其他字元來代替。
答案2
如果你可以互動地進行,你可以嘗試一下easymotion-插件:
d;;fh
-> 將使所有文字變灰並將所有h
字母標記為紅色,但將其替換為a,b,c,…
,然後您可以點擊b
刪除第二個h
。
我知道這個描述有點神秘 - 看看Youtube 視頻
Ps.:我忘了說;
是我的領導者鑰匙
答案3
d2fh
會在你的例子中做到這一點。
答案4
不,t
只接受一個字元。我會做vththd
。