Frequentemente, ao editar o código, seleciono um bloco no modo visual e faço uma pesquisa e substituí-lo. Depois de fazer as alterações, no entanto, ele sai do modo visual. Como você faz uma nova localização e substituição na mesma seleção?
Frequentemente, ao editar o código, seleciono um bloco no modo visual e faço uma pesquisa e substituí-lo. Depois de fazer as alterações, no entanto, ele sai do modo visual. Como você faz uma nova localização e substituição na mesma seleção?
Respostas:
Você pode selecionar novamente a última área visual selecionada com gv
.
:help
".
gv
é definitivamente o método mais rápido (use a última seleção), mas se você quiser uma região de seleção salva estável (ou várias), sempre poderá criar macros.
Digamos que eu quero armazenar uma seleção do meu método atual, que vai das linhas 25 a 35. Posso criar uma macro que seleciona todo o método digitando
q //start recording
a //use register a
25G //Go to line 25
V //visual-line mode
35G //Go to line 35
q // stop recording
Posso recuperar essa seleção digitando @a
(execute a macro no registro a). Repita com qualquer registro, linhas ou seções de linhas que desejar. Obviamente, se você fizer alterações no arquivo, a seleção também poderá ser alterada; portanto, considere usar marcas em vez de "codificar" os números de linha.
gv
funciona muito bem para recuperar a última seleção. Mas às vezes é preciso um pouco mais.
Se você precisar de um registro mais persistente, dê uma olhada neste plugin em que estamos trabalhando no GitHub.
O VisualMarks permite salvar e restaurar áreas visualmente selecionadas, assim como você salva e marca locais específicos em seus arquivos m
. Após a instalação e com as opções padrão, use:
ma
no modo visual para salvar sua seleção atual para marcar e a
, em seguida,
<a
no modo normal para voltar a esta seleção.
Suponha que eu queira substituir Adeus por Olá e o código abaixo foi selecionado:
public static void main(String[] args){
System.out.println("Goodbye World");
}
Eu :s/Goodbye/Hello/
digitaria e o vim substituirá todas as instâncias de Goodbye
porHello
É simplesmente uma combinação de expressões regulares do vim e seleções de modo visual. Quando você seleciona, ele deve preencher automaticamente'<,'>
gv
e seu modo visual voltará ao estado de seleção anterior.