Isso sempre me incomodou nos comandos w
e W
motion - eles parecem funcionar de maneira diferente quando usados com o c
comando hange do que quando usados sozinhos ou com o d
comando elete.
Por exemplo, com o cursor no "q" deste texto:
The quick brown fox jumps over the lazy dog.
digitando dw
resulta em
The brown fox jumps over the lazy dog.
e digitando de
resultados em
The brown fox jumps over the lazy dog.
(Observe os dois espaços entre "The" e "brown".)
O y
comando ank também trata w
e de maneira e
diferente, como pode ser mostrado comparando yeP
:
The quickquick brown fox jumps over the lazy dog.
e ywP
:
The quick quick brown fox jumps over the lazy dog.
No entanto, digitar um ceslow<Esc>
ou cwslow<Esc>
resulta na mesma coisa :
The slow brown fox jumps over the lazy dog.
Isso está documentado em algum lugar? Qual é a lógica por trás disso e como posso prever os resultados de um comando que usa w
?
fonte
A diferença entre o comportamento do movimento em
cw
vs.dw
pode ser explicada de maneira simples: normalmente, se você quiser alterar uma palavra, deixará o espaço em branco seguindo-o, enquanto a exclusão de uma palavra sugere que você deseja que o espaço em branco também seja removido.Se você deseja que o espaço em branco para ir embora por algum motivo (I fazê-lo regularmente o suficiente, mas não consigo pensar em um exemplo), em seguida, usar o
aw
movimento:caw
.fonte