Como excluo a próxima linha no vim?

9

No emacs, sempre que eu quero apagar algumas linhas de texto, eu uso apenas C-k até todo o texto desaparecer. No entanto, no vim, parece um pouco mais complexo. Eu sei que posso fazer d$ para deletar até o final da linha e dd para deletar toda a linha em que estou, mas como deletar toda a linha próxima ?

    
por Jason Baker 16.04.2010 / 16:06

5 respostas

4

Assim:

:+1d
    
por 16.04.2010 / 16:14
15

Suposição: você quer acabar na linha em que você começou.

Minha resposta: jddk

  • j (move para baixo)
  • dd (exclui a linha atual)
  • k (sobe)

Experimente - é rápido! Na verdade, são dois pressionamentos de teclas menores que a resposta aceita no momento porque:

  1. você não precisa manter [Shift] para inserir os dois-pontos ':' e mais caracteres '+' e
  2. você não precisa do [Enter] implícito no final da sequência, pois jddk é inserido em modo visual em oposição ao modo de comando .

Além disso, jddk está na linha inicial do teclado.

Passei muito tempo usando h, j, k, l para navegar em vi , muito antes do software de emulação de terminal que usei começar a oferecer suporte a teclas de seta. (Estou falando de ~ 20 anos atrás; -)

    
por 17.04.2010 / 01:05
4

Recomendo vivamente que leia esta resposta em overflow de pilha, que recebeu mais de 500 upvotes: link - a resposta é longa, mas ajuda a entender por que o vim é poderoso ...

    
por 19.04.2010 / 23:21
2

Você também pode estar interessado no modo visual. Basta usar v para inserir e y para yank ou d para excluir. Verificar :help é um ótimo lugar quando você está preso também. Por exemplo, :help delete lhe dará o manual para a maioria dos comandos de exclusão usuais.

    
por 16.04.2010 / 22:58
0

Se você quiser excluir um monte de linhas em uma linha, você pode usar dd para deletar a linha que você está, então continue batendo (ou pressionando) . (ponto) para repetir o comando.

    
por 17.04.2010 / 00:48