Vim substitui ocorrências de palavra com e sem primeiro capitalizado em um comando S & R

1

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?

    
por Iam Zesh 22.09.2014 / 11:09

1 resposta

1

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 22.09.2014 / 11:27