Edite palavras diferentes simultaneamente, uma da mesma linha, como em Sublime Text com seleções de multiplicação

14

é possível editar mais de uma palavra simultaneamente, que estão na mesma linha?

Por exemplo, digamos que eu tenho isso:

Spam and Eggs is all you need for a healthy breakfast

e gostaria de mudar a linha para:

organic_Spam and organic_Eggs is all you need for a healthy breakfast

Gostaria de destacar "Spam" e "Ovos" e acrescentar "organic_" simultaneamente a "Spam" e "Ovos". Um pouco como usar o bloco visual para escrever simultaneamente em linhas diferentes, mas aqui escreva coisas na mesma linha. Vi um colega fazendo isso com o Sublime Text e tentei pesquisar no Google, mas sem sucesso.

brodrigues
fonte
Eu sempre penso em várias seleções vim / função de cursores é apenas olho-doce ...
Kent

Respostas:

18

Eu concordo com Alexander aqui. Na edição diária, eu provavelmente usaria o .comando também, mas se você quiser executar apenas um comando, usaria o comando substitute:

:s/S\|E/organic_&/g

enquanto que o &é o padrão correspondente de /S\|E/.

rathrio
fonte
21

No Vim, não existem multi-cursores, como no Sublime Text (mas existem alguns plugins, pelo que me lembro). Mas parece não ser tão importante para o vim, porque existe outra maneira de conseguir isso. Por exemplo, você tem esta linha

Spam and Eggs is all you need for a healthy breakfast

Eu faria algo assim: coloque o cursor no modo normal na primeira letra do Spame entre iorganic_Esc, depois duas vezes wpara pular no Eggse pressione .(ponto) para repetir a última ação. Portanto, para mim, isso é muito mais produtivo do que no Sumlime Text, mas talvez não seja tão sofisticado e intuitivo.

De qualquer forma, existe algum tipo de material de pré-processamento para essa ação nos dois editores, no Sublime Text é um local selecionado para a nova posição de vários cursor com algumas teclas de atalho e, depois de tudo isso, você pode editar as palavras simultaneamente. No Vim, esse tipo de "pré-processamento" acontece realmente no momento da edição da linha, quero dizer tudo isso ww..

Alexander Myshov
fonte