Это всегда беспокоило меня в отношении команд w
and и W
motion - кажется, что они работают по-разному при использовании с командой c
hange, чем при использовании по отдельности или с командой d
elete.
Например, с курсором на «q» этого текста:
The quick brown fox jumps over the lazy dog.
печатать dw
результаты в
The brown fox jumps over the lazy dog.
и печатать de
результаты в
The brown fox jumps over the lazy dog.
(Обратите внимание на два пробела между «The» и «коричневый».)
Команда y
ank также обрабатывает w
и по- e
разному, что можно показать, сравнивая yeP
:
The quickquick brown fox jumps over the lazy dog.
и ywP
:
The quick quick brown fox jumps over the lazy dog.
Тем не менее, ввод либо ceslow<Esc>
либо cwslow<Esc>
приводит к тому же :
The slow brown fox jumps over the lazy dog.
Это где-то задокументировано? Какая логика стоит за этим и как я могу предсказать результаты команды, которая использует w
?
источник
Разницу между поведением движения в
cw
сравнении сdw
можно объяснить просто: обычно, если вы хотите изменить слово, вы оставляете пробел после него, а удаление слова предполагает, что вы также хотите удалить пробел.Если вы хотите пробельные уйти по какой - то причине (я делаю это достаточно регулярно , но не могу думать о примере) , а затем использовать
aw
движение:caw
.источник