2015-03-31 14 views
1

我遇到的一個常規障礙是想用替換替換所有出現的單詞,而且還要替換其它替換的變體。我想用一個命令來做到這一點。例如:
Vim Ex模式正則表達式:如何做案例感知的字交換

原文:
Bananas? Ew, I don't like bananas.

俏皮的正則表達式:
:%s/Something/Clever/g

結果:
Grapes? Ew, I don't like grapes.

有什麼辦法來執行此更換這比快一種巧妙的方法執行以下兩個命令?

:%s/bananas/grapes/g

+3

嘗試https://github.com/tpope/vim-abolish – svlasov 2015-03-31 13:23:38

回答

2

有幾個插件,允許這樣的:

:%s/bananas/\=SmartCase("grapes")/ig 
:%SmartCase/bananas/grapes/g 
:%Subvert/{b,B}ananas/{g,G}rapes/g 
+0

[Vimcasts](http://vimcasts.org/)具有約Abolish.vim的'的截屏:Subvert'命令:[增壓取代成:顛覆](http://vimcasts.org/episodes/supercharged-substitution-with-subvert/) – 2015-03-31 16:56:08

1

您也可以從:SubstituteCasekeepcase.vim

:SubstituteCase#\ctoto\(Titi\)tata#\1Tutu#g 

    totoTitiTata -> titiTutu 
    TotoTitiTata -> TitiTutu 
    tototititata -> tititutu 
    tototitiTata -> titiTutu 
    TototitiTata -> TitiTutu 
0

如果忽略大小寫設置:

:s/bananas/Grapres/|s//grapes 

但是,這更多的是一種伎倆(//表示上次的搜索模式,即香蕉),比一個解決方案,我寧願使用插件的其他建議。