Неожиданное поведение с оператором изменения Vim и движением вперед-назад - PullRequest
0 голосов
/ 29 марта 2020

Я изучаю основы Vim и заметил неожиданное поведение с помощью команды cw.

Для этой команды я ожидаю, что движение будет выбирать курсор от начала следующего слова (исключая ) и примените операцию изменения. Но вместо этого я вижу, что он выделяет только до конца текущего слова (включительно), идентично тому, что делает ce.

Пример: Hello world с курсором на «е».

Я получаю следующее после выполнения cw:

Факт: H world с курсором на первом пробеле.

Ожидается: Hworld с курсором на 'w'.

1 Ответ

1 голос
/ 29 марта 2020

Это особый случай. Обычно, если вы хотите изменить слово, вы также хотите пробел после него.

Особый случай: «cw» и «cW» обрабатываются как «ce» и «cE», если курсор находится на непустом поле. Это потому, что "cw" интерпретируется как слово изменения, и слово не включает следующий пробел. {Vi: "cw", когда за пробелом следуют другие пробелы, изменяется только первый пробел; это, вероятно, ошибка, потому что "dw" удаляет все пробелы}

Подробнее об этом вы можете прочитать в документации по WORD

Если вы это сделаете Если вы хотите удалить пробел, вы можете попробовать движение caw.

Hello world
 ^
-> caw
Hworld
 ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...