- Como deletar uma palavra à esquerda? Em outras palavras, exclua a palavra quando o cursor estiver no final dela.
- Como deletar caracteres no início da linha?
Como alguém deleta o primeiro espaço em branco à esquerda?
Algum outro truque envolvendo a exclusão de palavras?
119
db
difícil lembrar:5. dw or d<ctrl+rightarrow>
e6. db or d<ctrl+leftarrow>
d<leftArrow>
façadh
, já queh
é a chave para mover para a esquerdaJá estive neste cenário muitas vezes. Quero me livrar de todos os espaços na linha 10 para que ela se junte à linha 9 após a vírgula.
Esta é basicamente uma junção de linha simples no VIM.
kJ
faz o truque (veja abaixo)fonte
k
= Up,J
= Unir a linha abaixo à atual com um espaço no meio. Você também pode fazerkgJ
para entrar sem um espaço.gJ
= Junte a linha abaixo sem espaço entre eles. Via cheatsheet: vim.rtorr.comPara responder ao ponto # 3,
diw
edaw
são excelentes.fonte
db
exclui as letras que precedem a última letra, mas ainda deixa a última letra.i
ea
estão fazendo no meio desses comandos? Sei que o iníciod
é "excluir" e presumo que o finalw
seja "palavra".:help text-objects
. O parágrafo inicial é muito conciso e acho que o descreve muito bem.No modo de inserção:
De outra forma:
fonte
No modo de comando:
bdw
, voltar excluir palavra.d^
(para o primeiro não vazio),d0
(para o primeiro caractere)BdW
(vá para o primeiro espaço em branco, exclua o próximo espaço em branco)(Wiki da comunidade, sinta-se à vontade para hackear.)
fonte
db
(se o cursor estiver após a palavra) oubdw
d0
(oud^
se você deseja excluir o primeiro caractere não em branco)dE
ou dtSpacepara excluir para o primeiro espaço ou d/\sEnterpara excluir para o próximo caractere de espaço em branco.Editar
Como a pergunta foi alterada de forma que 3 é excluído até o primeiro caractere de espaço em branco à esquerda, minha resposta deve mudar para:
dB
ou dShiftTSpacepara deletar de volta ao primeiro espaço ou d?\sEnterdeletar para o caractere de espaço em branco anterior.Vejo:
fonte
bdw
. O personagem restante (aquele originalmente sob o cursor) dedb
continuou me irritando.Sinto que nenhuma das respostas está completa:
Em geral, você geralmente inicia uma operação de exclusão usando
d<motion>
, e raramente usandox
.Carateres discretos:
<N>x
- Exclua N caracteres à direitad<N><left-arrow>
- Exclua N caracteres à esquerdad<N><right-arrow>
- Exclua N caracteres à direitaLimites de palavras:
d<N>b
- Excluir do início da enésima palavra anterior para a posição atuald<N>e
- Excluir da posição atual até o final da enésima palavra seguinted<N>w
- O mesmo que,d<N>e
mas incluindo espaços em branco à direitadiw
- Exclua a palavra inteira sob o cursordaw
- O mesmo que,diw
mas incluindo espaços em branco à direitaLimites de linha:
d0
- Excluir do início da linha para a posição atuald^
- Exclua do primeiro caractere sem espaço em branco para a posição atuald$
- Excluir da posição atual até o final da linhafonte
/ <CR>x
(procure um espaço para frente, pressione Enter para ir até lá, x para deletar)
Pode haver uma maneira mais mágica de fazer isso, mas não conheço nenhuma.
fonte