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 $ .
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.
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 $ .
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.
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].
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.
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.
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