Como você reutiliza uma seleção de modo visual?

151

Muitas vezes, ao editar o código, seleciono um bloco no modo visual e faço uma pesquisa e substituo o bloco. Depois de fazer as alterações, no entanto, sai do modo visual. Como você faz uma nova descoberta e substitui a mesma seleção?

    
por labyrinth 10.12.2010 / 17:58

4 respostas

217

Você pode selecionar novamente a última área visual selecionada com gv .

    
por 11.12.2010 / 00:59
12

gv é definitivamente o método mais rápido (use a última seleção), mas se você quiser uma região de seleção salva (ou várias), você sempre pode criar macros.

Digamos que eu queira armazenar uma seleção do meu método atual, que vai das linhas 25-35. Eu 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

Eu posso recuperar a seleção digitando @a (execute macro no registro a). Repita com qualquer registro, linhas ou seções de linhas que você desejar. Obviamente, se você fizer alterações no arquivo, a seleção também poderá mudar, portanto, convém considerar a utilização de marcas em vez de números de linha "codificados".

    
por 14.03.2013 / 14:26
6

gv funciona muito bem para recuperar a última seleção. Mas às vezes precisa de um pouco mais.

Se você já precisou de um registro mais persistente, dê uma olhada em este plug-in no qual estamos trabalhando no momento GitHub.

VisualMarks permite que você salve e restaure áreas visualmente selecionadas como você salva e marque locais específicos em seus arquivos com 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 a e, em seguida,

<a

no modo normal para voltar a essa seleção.

    
por 18.10.2015 / 19:39
0

Suponha que eu quisesse substituir Goodbye por Hello e o código abaixo foi selecionado:

public static void main(String[] args){
    System.out.println("Goodbye World");
}

Eu digitaria :s/Goodbye/Hello/ e o vim substituirá todas as instâncias de Goodbye por Hello

É simplesmente uma combinação das expressões regulares e das seleções do modo visual do vim. Quando você seleciona, deve preencher automaticamente '<,'>

    
por 10.12.2010 / 18:20