ti-enxame.com

Exclua do cursor até o final da linha no `vi`

Eu sei que provavelmente já examinei isso um milhão de vezes em todos os documentos vi que li, mas não consigo encontrar a exclusão do cursor para o comando final da linha.

334
Falmarri

O comando dw excluirá da posição atual do cursor para o início do próximo caractere do Word. O comando d$ (observe que é um cifrão, não um 'S') será excluído da posição atual do cursor até o final da linha atual. D é sinônimo de d$.

499
Tok

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

O que normalmente acho mais útil é c$ ou C (shift-c) porque ele será excluído da posição do cursor até o final da linha e o colocará no modo [INSERIR].

54
Brad Johnson

Uma das coisas legais do vi é sua estrutura de comando lógica. d seguido por um comando de movimento d é excluído do alvo desse movimento. $ move para o final da linha (mnemônico: como nos regexps). Assim d$ exclui no final da linha. Da mesma forma, e se move para o e nd da Palavra atual e w se move para o início do próximo w ord; então de exclui o final do Word atual e dw exclui adicionalmente o seguinte espaço em branco.

38

Você provavelmente deseja usar D. Mova o cursor para o primeiro caractere que deseja excluir e pressione Shift-D. Tudo se foi. Na verdade, ele está no buffer de corte padrão, para que você possa colá-lo novamente em P ou P.

Uso Dp (excluir para o final da linha e colocá-lo novamente), mover para o final de outra linha e, em seguida, p novamente para colar o mesmo texto no final dessa outra linha. Faz maravilhas em arquivos de configuração, onde você precisa colocar um URL complicado em dois ou mais lugares.

21
Bruce Ediger

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

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

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

Usando o comando 3D irá produzir:

If there's a cursor
go
1
Nick Bull

Eu acho que um atalho do 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 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. o Ctrl-k já é usado para inserir dígrafos.

Eu tenho pesquisado por :h i_Ctrl para algumas combinações de teclas gratuitas, e esse é realmente o maior problema quando se trata de criar novos atalhos para executar ações no vim.

1
SergioAraujo