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.
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.
Respostas:
O comando dwexcluirá da posição atual do cursor até o início do próximo caractere de palavra. O comando d$(note que é um cifrão, não um 'S') será excluído da posição atual do cursor até o final da linha atual. Dé um sinônimo para d$.
dw
, mas acho que assumi que haveria um comando "excluir o restante desta linha". Por exemplo, minha linha tem ip=|10.1.1.1
como |
local do cursor. Existe um comando que excluirá tudo 10.1.1.1
?
d$
:!rm -f %
e depois :q!
. Isso exclui o arquivo inteiro.
d^
('d' + sinal de intercalação) ... basicamente d + qualquer caractere que normalmente moveria o cursor, mas acho que estou aprendendo o Vim, para que eu possa estar errado nisso.
Como já mencionado: você pode usar d$
ou D
( shift- d) para excluir da posição do cursor até o final da linha.
O que eu 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].
D
para a maioria das pessoas, na minha opinião, uma vez que não leva você de volta a um espaço no final da linha.
i
que é inserido antes do cursor e a
que é inserido depois do cursor. Se o cursor estiver no final da linha e você deseja inserir no final da linha, você pode apenas usá-lo a
.
Uma das coisas boas sobre o vi é sua estrutura de comando lógica. d
seguido por um comando de movimento d eletes para o alvo do que o movimento. $
move para o final da linha (mnemônico: como nos regexps). Assim, d$
elimina até o fim da linha. Da mesma forma, e
se move para o e nd da palavra atual, e w
move-se para o início da próxima w ord; por isso de
exclui o final da palavra atual, e dw
além disso elimina o seguinte espaço em branco.
<kbd>
para chaves reais, não para seqüências de comando. Por exemplo <kbd>Ctrl</kbd>+<kbd>C</kbd>
, mas d$
.
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 colar P ou P de volta.
Uso Dp (excluir para o final da linha e colocá-lo de volta), passar 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.
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, Dno modo normal e Ctrl+ lno modo de inserção. Como você pode ver, você também tem Cque começar a mudar até o final da linha.
<C-o> ......... insert normal keystroke in insert mode
Eu escolhi Ctrl- lporque l
está sob seus dedos. O Ctrl- kjá é usado para inserir dígitos.
Eu tenho procurado por :h i_Ctrl
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.
Para excluir um intervalo de linhas após a posição do cursor, ele 3Dserá 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 texto a seguir (cursor representado como |
),
If there's a cursor |in the line
here
we
go
O uso do comando 3Dproduzirá:
If there's a cursor
go