Respostas:
Em geral, d <motion> irá deletar da posição atual para a posição final após <motion>. Isso significa que:
Leia isto para aprender todas as coisas que você pode combinar com o comando 'd'.
d<leftArrow>
faça dh
, já que h
é a chave para mover para a esquerda
Já 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)
k
= Up, J
= Unir a linha abaixo à atual com um espaço no meio. Você também pode fazer kgJ
para entrar sem um espaço. gJ
= Junte a linha abaixo sem espaço entre eles. Via cheatsheet: vim.rtorr.com
Para responder ao ponto # 3, diw
e daw
são excelentes.
db
exclui as letras que precedem a última letra, mas ainda deixa a última letra.
i
e a
estão fazendo no meio desses comandos? Sei que o início d
é "excluir" e presumo que o final w
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:
db
(se o cursor estiver após a palavra) ou bdw
d0
(ou d^
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:
:help motion.txt
:help WORD
bdw
. O personagem restante (aquele originalmente sob o cursor) de db
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 usando x
.
Nota: Quando
N
não especificado, se comporta como seN=1
(exclui um único caractere)
Carateres discretos:
<N>x
- Exclua N caracteres à direita
d<N><left-arrow>
- Exclua N caracteres à esquerda
d<N><right-arrow>
- Exclua N caracteres à direita
Limites de palavras:
Nota: A primeira palavra anterior / seguinte é aquela sob o cursor
d<N>b
- Excluir do início da enésima palavra anterior para a posição atual
d<N>e
- Excluir da posição atual até o final da enésima palavra seguinte
d<N>w
- O mesmo que, d<N>e
mas incluindo espaços em branco à direita
diw
- Exclua a palavra inteira sob o cursor
daw
- O mesmo que, diw
mas incluindo espaços em branco à direita
Limites de linha:
d0
- Excluir do início da linha para a posição atual
d^
- Exclua do primeiro caractere sem espaço em branco para a posição atual
d$
- Excluir da posição atual até o final da linha
/ <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.
db
difícil lembrar:5. dw or d<ctrl+rightarrow>
e6. db or d<ctrl+leftarrow>