在vim中,在普通模式下,如果光標位於一個單詞中,而不是最後一個字母,則de
將從該位置刪除該單詞的後綴。如果光標在最後一個字母上,x
也會這樣做,而de
會跳到下一個單詞的末尾。在Vim中,如何刪除單詞的後綴?
你會使用哪種命令,在兩種情況下都能正常工作,最後一封信是不是?
其目的是將該命令包含在宏中。
在vim中,在普通模式下,如果光標位於一個單詞中,而不是最後一個字母,則de
將從該位置刪除該單詞的後綴。如果光標在最後一個字母上,x
也會這樣做,而de
會跳到下一個單詞的末尾。在Vim中,如何刪除單詞的後綴?
你會使用哪種命令,在兩種情況下都能正常工作,最後一封信是不是?
其目的是將該命令包含在宏中。
嘗試vwged
而不是de
,並定義類似以下的映射,如果你喜歡它,則使用 。
:nnoremap <leader>de vwged
它似乎正是你想要的。
'vwged'就是我一直在尋找的東西。謝謝。 – galath 2011-05-24 06:16:46
如果你的詞分隔符是空格,dt<space>
將起作用。 t
將匹配所有字符,直到指定的字符。
一些有用的評論:dw - 刪除他們稱之爲「小」的單詞。就像在「settings.config」中一樣,如果你使用的是「s」,'dw'會刪除'.'前的所有內容以刪除整個字符串,使用'dW'(刪除「big」字) – Nemoden 2011-05-22 08:37:17
爲了推廣這個解決方案:'dtC ',其中'C'是要刪除的單詞的最後一個字符旁邊的字符。 – 2011-05-22 09:37:16
但是如果你的單詞後面跟着逗號或分號(或任何其他不是字的字符?)?你需要一種方法來跳轉到下一個單詞邊界 – 2011-05-22 09:42:33
:s/\w\+//
這將替換在行首。
要使其在光標位置處替換,必須將一些行添加到vimrc中。按照說明這裏
http://vim.wikia.com/wiki/Repeating_a_substitute_from_current_cursor_position
您也可以嘗試d/\>
它轉換爲刪除高達下一頁尾字邊界。
該行爲不取決於單詞的長度,而取決於遊標的位置。如果光標位於單詞的最後一個字符處,「e」運動也會跳到下一個單詞的末尾。 – 2011-05-22 09:30:02
沒錯,再次感謝。問題得到糾正。 – galath 2011-05-24 06:29:46
已經回答了,但'cw'也可能對你有用。它完成你所描述的內容,但也會跳轉到編輯模式。 – 2011-05-24 07:15:02