Извлечение нескольких внутренних слов в vim

Извлечение нескольких внутренних слов в vim

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

first second third fourth

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

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

решение1

Введите около 5 пробелов и выполните следующие действия viw: эти 5 пробелов выбираются, поскольку iwтакже рассматриваются \s+как отдельный «объект».

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

  • yiwдергает firstв безымянном регистре.
  • y2iwкопирует first(с конечным пробелом) в безымянный регистр.
  • y3iwyanks 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.

Связанный контент