Всякий раз, когда вы хотите найти текст в vim, вы должны набрать, /а затем строку, которую вы ищете.
Однако, если строка длинная и вы хотите сделать это несколько раз, есть ли способ сделать это, чтобы вам не приходилось печатать /andthisreallylongstring
более одного раза?
Ответы:
После завершения поиска нажмите «n», после чего будет повторено предыдущее действие (поиск).
источник
N
перейдем к предыдущему результату./
q/
покажет редактируемое окно со всеми последними поисковыми запросами./
и Enter повторит предыдущий поиск. Нажатие?
и Enter повторит предыдущий поиск в обратном направлении./Ctrl-F
альтернативойq/
этому может быть более простая мнемоника (ctrl-f == find). Как и q, он также работает в командном режиме.Если искомая строка находится под курсором, вы можете ввести ее *для поиска вперед или #для поиска в обратном направлении.
источник
Как я обычно ищу что-то вроде;
Vim хранит историю ваших поисков, поэтому, если вам нужны предыдущие поиски, вы можете нажать '/' и использовать клавиши ВВЕРХ и ВНИЗ или <Ctrl-P> <Ctrl-N>, чтобы просмотреть историю поиска.
Вы также можете использовать «?» вместо «/» искать в обратном направлении.
Мне также нравится использовать:
Теперь поиск будет выполняться только с учетом регистра, если в строке поиска есть заглавные буквы.
источник
Два дополнительных советов , которые могут сделать ваш поиск более эффективны
set hlsearch
иset incsearch
.set hlsearch
Ну, подсвечивает ваши результаты поиска. Напечатайте,:noh
чтобы отключить их, когда они вам больше не нужны.set incsearch
включает пошаговый поиск.Извлеченный из
:help incsearch
Без
incsearch
, ваши результаты будут отображаться только после нажатия<CR>
на ключевое слово для поиска.Пример:
Вы хотите найти
wildignore
Вы вводите,
/wild
и первое совпадение подсвечивается автоматически.Затем напечатайте
i
и переходите к следующему правильному совпадению.источник
Еще один совет, который еще не рассмотрен: нажав символы
q
и затем/
, вы получите список ваших предыдущих поисковых терминов. Вы можете редактировать их, как любую другую строку в документе, а затем нажать клавишу ввода, чтобы повторно использовать их для нового поиска.источник
После нажатия, /чтобы начать поиск, вы можете стрелку вверх, чтобы прокрутить историю поиска.
Вы можете ввести регулярное выражение, чтобы избежать необходимости вводить весь поисковый запрос:
and.*longstring
источник
Разве просто удар / без аргументов не работает для вас? Во всех наших системах это повторяет любой поиск, который был выполнен последним.
источник
Есть хороший шаблон, который вы можете использовать для поиска дерганного текста . Тогда вам даже не нужно вводить слово само по себе, если вы перешли к нему другими способами, а не поиском. Таким образом, если вы находитесь на первом символе слова, которое вы хотите найти:
(затем переходите к следующему совпадению с n или N)
Однако
*
(или#
) выполняет почти то же самое, что и все эти команды. Разница лишь в том, что вы можете быть гибкими в зависимости от того, сколько слова вы укажете (вместо e, до конца слова вы можете выбрать столько, сколько хотите, например, 9l)источник
/string
- Поиск вперед для строки?string
- Поиск по строкеn
- Поиск следующего экземпляра строкиN
- Поиск предыдущего экземпляра строкиисточник
Много времени при программировании я хочу искать
aVeryLongVariableNameInTheProgram
.В vim вы можете очень легко скопировать текст в буфер / регистр, а затем найти его:
"Byw
вытащить текстaVeryLongVariableNameInTheProgram
в буфер B (выберите ваш любимый, я использовал B)/^RB
(косая черта, Ctrl-R, B), чтобы вставить буфер B в строку поискаКонечно, вы также можете вернуться к концу строки и т. Д. Вместо того, чтобы дергать одно слово - я просто использую приведенную выше последовательность все время.
источник
Кроме того, вы можете вставить содержимое любого регистра в строку поиска, нажав Ctrl+, Rа затем имя регистра, например, / Ctrl+ R0 Enter.
источник
Длинная строка, которую вы вводите имя переменной? Или длинная строка в вашем тексте? Затем нажмите,
*
чтобы найти слово / строку под вашим курсором.источник