Apagar do cursor para o final da linha no VI

261

Eu sei que provavelmente já examinei isso um milhão de vezes em todos os documentos VI que já li, mas parece que não consigo encontrar o comando delete do cursor para o fim da linha.

    
por Falmarri 29.11.2010 / 21:58

6 respostas

394

O comando d w irá apagar da posição atual do cursor para o início do próximo caractere de palavra. O comando d $ (note que é um sinal de dólar, não um 'S') irá apagar da posição atual do cursor até o final da linha atual. D é um sinônimo para d $ .

    
por 29.11.2010 / 22:00
33

Uma das coisas boas sobre o vi é sua estrutura de comando lógico. d seguido por um comando de movimento d elimina o alvo dessa moção. $ se move para o final da linha (mnemônico: como em regexps). Portanto, d$ é excluído no final da linha. Da mesma forma, e move para o e nd da palavra atual e w move para o início da próxima w ord; então de apaga o final da palavra atual e dw exclui adicionalmente o espaço em branco a seguir.

    
por 29.11.2010 / 22:33
24

Como outros já mencionaram: você pode usar d$ ou D ( deslocamento - d ) para excluir da posição do cursor até o final da linha.

O que eu normalmente acho mais útil é c$ ou C ( deslocamento - c ) porque irá apagar da posição do cursor até o final da linha e colocam você no modo [INSERT].

    
por 08.12.2015 / 21:57
18

Você provavelmente deseja usar D. Mova o cursor para o primeiro caractere que deseja excluir e, em seguida, pressione shift-D. Tudo desapareceu. Na verdade, ele está no buffer de corte padrão, então você pode P ou p colá-lo de volta.

Eu uso Dp (delete para o final da linha, depois coloque-o de volta), mova para o final de alguma outra linha, então p novamente para colar o mesmo texto no final desta outra linha. Funciona maravilhas em arquivos de configuração, onde você precisa colocar algumas URLs complicadas em dois ou mais lugares.

    
por 30.11.2010 / 05:52
0

Acho que um atalho no modo de inserção pode ser útil.

No modo de inserção, talvez seja melhor começar a mudar até o final da linha (coloque isso no seu ~/.vimrc ):

inoremap <C-l> <C-o>C

Então você tem, como já foi dito, D no modo normal e Ctrl + l no modo de inserção. Como você pode ver, você também tem C que começa a mudar até o final da linha.

<C-o> ......... insert normal keystroke in insert mode

Eu escolhi Ctrl - l porque l está sob seus dedos. A Ctrl - k já é usada para inserir digrafos.

Eu tenho procurado por :h i_Ctrl para alguns atalhos de teclado gratuitos, e é realmente o maior problema quando se trata de criar novos atalhos para executar ações no vim.

    
por 19.01.2018 / 11:19
0

Para excluir um intervalo de linhas após a posição do cursor, 3 D será excluído do cursor até o final da linha, bem como as próximas duas linhas completamente (ou seja, exclui 3 linhas após a posição do cursor).

por exemplo. para o seguinte texto (cursor representado como | ),

If there's a cursor |in the line
here
we
go

Usando o comando 3 D irá gerar:

If there's a cursor
go
    
por 05.07.2018 / 15:51

Tags