Você pode usar um plug-in como o SmartCase :
:'<,'>s/type/\=SmartCase('model')/gi
Sem um plug-in, você também precisa usar :help sub-replace-expr
:
:'<,'>s/\([tT]\)ype/\=submatch(1) ==# 't' ? 'model' : 'Model'/g
Por exemplo, eu tenho essa paz de código Java
public String setType(String newType) {
this.type = newType:
}
Eu seleciono tudo isso e gostaria de pesquisar e substituir o tipo por modelo, mas independentemente da primeira letra, para que o tipo seja substituído pelo modelo e o Tipo seja substituído pelo Modelo:
public String setModel(String newModel) {
this.model = newModel:
}
Não consigo encontrar uma maneira de fazer isso no vim com apenas um comando, tentei aqueles sem sucesso:
:'<.'>s/[tT]ype/[mM]odel/g
:'<.'>s/\(t\|T\)ype/\(m\|M\)odel/g
Alguma ideia?
Você pode usar um plug-in como o SmartCase :
:'<,'>s/type/\=SmartCase('model')/gi
Sem um plug-in, você também precisa usar :help sub-replace-expr
:
:'<,'>s/\([tT]\)ype/\=submatch(1) ==# 't' ? 'model' : 'Model'/g
Tags vim find-and-replace