2

Текстовые объекты внутреннего и внешнего слова в vim ведут себя по-разному в сочетании с подсчетом. Данный текст (курсор находится внутри слова first)

first second third fourth

оба y2iw первое слово в регистр, y3iw/y4iw - первые два слова и т. д. Поэтому мне нужно по крайней мере y7iw чтобы восстановить все четыре (внутренних) слова. Для внешних слов данное количество соответствует количеству выдернутых слов.

Почему два объекта iw соответствуют одному слову в этом случае, и могу ли я заставить iw вести себя подобно aw?

1 ответ1

4

Введите 5 или около того пробелов и сделайте viw: 5 или около того пробелов выбраны, потому что iw также рассматривает \s+ как отдельный "объект".

В вашем примере у вас есть 7 iw объектов:

  • yiw дергает first в неназванном регистре.
  • y2iw дергает first (с завершающим пробелом) в безымянном регистре.
  • y3iw возвращает first second (с пробелом) в безымянном регистре.
  • y4iw возвращает first second (с пробелами) в безымянном регистре.
  • И так далее…

С другой стороны, aw рассматривает слово и любое число следующего пробела как "объект".

В вашем примере у вас есть 4 объекта aw :

  • yaw дергает first (с завершающим пробелом) в безымянном регистре.
  • y2aw возвращает first second (с завершающим пробелом) в безымянном регистре.
  • y3aw возвращает first second third (с завершающим пробелом) в безымянном регистре.
  • y4aw возвращает first second third fourth в неназванном регистре.

Если вы хотите iw вести себя как aw просто использовать aw

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .