說我有以下行:改變下N個字符在VIM
|add_test() (| == cursor position)
而想要更換用「德爾」「添加」。
del|_test()
我既可以按X鍵三次,然後按i鍵來插入並輸入德爾。 我想要的是像3c或3r的東西來覆蓋只有3個字符。 這兩個都不做我想要的,3c用相同的 字符覆蓋3個字符,3r做了其他幾件事。
有沒有一種簡單的方法來做到這一點,而無需手動邢和插入文本?
說我有以下行:改變下N個字符在VIM
|add_test() (| == cursor position)
而想要更換用「德爾」「添加」。
del|_test()
我既可以按X鍵三次,然後按i鍵來插入並輸入德爾。 我想要的是像3c或3r的東西來覆蓋只有3個字符。 這兩個都不做我想要的,3c用相同的 字符覆蓋3個字符,3r做了其他幾件事。
有沒有一種簡單的方法來做到這一點,而無需手動邢和插入文本?
3s
,「替代3個字符」與c3l
相同。 3cl
和c3l
應該是一樣的,我不知道爲什麼你會看到重複的同一個字符。我也是使用t
的粉絲,例如ct_
作爲另一張海報提到,那麼我不必數字,只需鍵入「del」。
我在「取代幾個人物」幾天也在掙扎; 'r'非常適合單個字符,R
對匹配長度的字符串非常有用,但我希望像OP所要求的那樣。因此,我輸入:help x
並閱讀了一段時間,結果發現s
和S
的描述只是從x
開始的幾頁。
換句話說,:help
是你的朋友。閱讀並學習。
c3
('c','3',space),然後鍵入要插入的字符。 (或者你可以使用右箭頭或l
而不是空間。)
或者,正如@Mike剛纔說在註釋中,
控制-R
R
作品很好,如果字符數正好匹配的字符數你正在刪除。
或ct_
將光標更改爲下一個_
字符。
現在我想到它不是它的大寫R而不是CTRL + R? – Mike
@Mike:是的,它是'R'。 –
我認爲3cl
是你想要的。它改變了3個字符的權利。我會輸入ct_del<esc>
,但這不是你要求的
使用13 C {運動}命令:
單詞由iskeyword變量決定。用檢查它:設置iskeyword?並刪除任何'_',如:set iskeyword = @,48-57,192-255。 順便看看:幫助c和:幫助議案如果你想要更多。
ct_實際上比我所尋找的要好,但從技術上說,s命令可以回答這個問題;-) – MrB
這是更好的答案。雖然OP在他的例子中改變了3個字符,但是這個答案能夠解決任何改變的N個字符。 – DrStrangepork
如果作品的長度相同,則可以使用R
命令,該命令將您以前輸入的內容替換爲以前的內容。
如果輸入「3s」後鍵入3個字符,它會自動回到正常模式。我想知道是否有辦法做這樣的事情(類似於'3r') –
是的,我也經常想要這樣的事情。唉,我不知道它是否存在。 –