- есть ли способ скопировать до поискового запроса, _включая_ термин? - PullRequest
4 голосов
/ 21 июля 2010

Если у меня есть следующие слова

cat Oliver Louis

и курсор находится на «c», я могу скопировать до начала Луи с помощью y/Louis<CR> (где «CR» - клавиша ввода), в результате чего будет скопирована строка «cat Oliver».

Существует ли способ скопировать и поисковый термин «Louis» для скопированной строки «cat Oliver Louis»?Заранее спасибо.

Ответы [ 3 ]

10 голосов
/ 21 июля 2010

Используйте модификатор /e: y/Louis/e<CR>.Если вы хотите повторить последний шаблон поиска, просто опустите его: y//e<CR>.

:help search-offset
2 голосов
/ 21 июля 2010

Так как / поиск эксклюзив , он будет выбирать все до совпадения, но не включая совпадение.(отметьте :help exclusive)

Более удобным способом может быть использование команд движения включительно f и t.

В следующей строке:

cat Oliver Louis

, набрав yfs в обычном режиме, вытащите все до буквы "s", или в этом случае cat Oliver Louis

Очевидно, что это не так удобно, еслилиния что-то вроде

cat Assassins Scissors

Слишком много s.В этом случае вы можете перейти в визуальный режим и либо повторить включенное поисковое движение f, нажимая ;, пока не достигнете последних s.Или, как вы предложили выше, просто используйте w, которому предшествует количество слов, которые вы хотите скопировать.В этом случае y3w будет работать.

1 голос
/ 21 июля 2010

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

y/\(Louis\)\@<=

Это выглядит не для Луи, а для позиции, которой предшествует строка Луи.

...