2017-03-08 56 views
3

例如,我經常在塊或段落中的所有行上使用substitute命令。我爲我的作品一個成語:將s命令應用於對象的正確方法是什麼?

!ip<bs>s/foo/bar/ 

但每次我這樣做的時候,我有這種感覺,我不神交VI的語言。我可以對物體做其他操作,如

dip or yip or cip 

但不是sip。根據我的理解,它不適合vi/vim語言。所以,我做!ip,然後抹掉'!',然後繼續輸入我的s ///命令。這是表達我所知道的這種手術的最短,最不自然的方式。我錯過了什麼嗎?

回答

2

我明白你的意思,但我相信沒有更好的方式使用默認命令。還有,當你有可用的+visual功能替代:

vip:s/foo/bar/ 

但它具有相同的密鑰數量並沒有優勢。 如果您可以自定義,您可以創建一個新命令來執行您所期望的操作。例如,您可以輸入sip,並將光標放在所選範圍的命令行中,並按:help :map-operator中的說明s/。例如:

nnoremap s :set opfunc=SubstituteOperator<CR>[email protected] 

function! SubstituteOperator(type, ...) 
    silent call feedkeys(":'[,']:s/", 'n') 
endfunction 
+0

我同意'vip ...'方法可能更符合OP所描述的「vim語言」。 –

相關問題