vim: substitua todos os caracteres até o final da linha

25

Talvez eu esteja sendo maluco, mas você pode substituir todos os caracteres de onde o cursor está até o final da linha por um comando? Então use . para fazer a mesma substituição na próxima linha e assim por diante.

    
por Sardathrion 17.02.2012 / 10:13

6 respostas

44

Se entendi sua pergunta corretamente, tente o seguinte:

C (que é um C maiúsculo) irá apagar tudo do cursor até o final da linha e colocar você no modo INSERIR , então você escreve o seu substituto, deixe No modo INSERT, use . para repetir o processo em outro lugar.

    
por 17.02.2012 / 10:17
14

Adicionando a resposta do sr_:

Se o seu cursor começar na mesma posição em cada linha, talvez você esteja interessado no bloco visual recurso.

Digite o seguinte em ordem, com o cursor na posição inicial:

  • Ctrl + v : Entre no modo de bloco visual.
  • $ : vai para o final da linha.
  • [X] j : substitua X pelo número de linhas que deseja baixar.

Isso deve criar uma seleção retangular indo do cursor na primeira linha até o final das linhas da linha [X] abaixo.

Você pode substituir toda a sua seleção:

  • c : apaga a seleção e entra no modo de inserção.
  • inserir novo texto
  • Esc : sai do modo de inserção; O Vim irá repetir automaticamente o passo em cada linha selecionada.

Eu uso bloco visual sempre que posso, pensei em compartilhar

    
por 17.02.2012 / 10:36
2

C ou c $ é para "alterar" e R é para "substituir".

Dois comportamentos quase similares. O primeiro teria a linha deletada antes de você começar a digitar; enquanto o último permite digitar os caracteres e possivelmente ultrapassar o limite dos caracteres exibidos na linha antiga.

    
por 17.02.2012 / 12:51
1

Basta pressionar 'C', ou seja, Capital C no modo de comando e digitar o texto de substituição.

    
por 17.02.2012 / 13:08
0

As outras respostas falharam, elas não entram no modo de inserção.

  • D Apagar para o final da linha
  • d $ Exclui do cursor até o final da linha

Então, é claro, use .

    
por 17.02.2012 / 12:07
0

Como pode ser útil, uma vez que estamos tentando mudar até o final da linha. Eu criei um mapeamento de inserção para executar esta tarefa, ele não usa D porque no modo de inserção essa chave é usada para diminuir o recuo. Então é Ctrl - k

:inoremap <C-k> <C-o>C
    
por 10.02.2018 / 14:57

Tags