Инициализация поиска в vi перед запуском

Инициализация поиска в vi перед запуском

Я использую небольшую программу, которую я написал, которая принимает шаблон регулярного выражения в качестве параметра и ищет более 2000 файлов. Файлы находятся в иерархии каталогов.

Шаблон может быть в нескольких файлах и несколько раз в одном файле. После нахождения имен файлов и строк, в которых встречается шаблон, программа вызывает viс +lineномером первой строки и всеми найденными именами файлов.

Теперь все работает, но одно время я пытался указать +lineдля каждого файла ( vi +2 x1 +5 x2), но это помещало курсор на строку 5 в x1и строку 1 в x2, а не на то, что мне было нужно, поэтому я отказался от этой идеи.

Шаблоны часто сложные, и я не хочу вводить их дважды, поэтому теперь я иногда использую копирование и вставку для поиска следующей строки в vi. Было бы здорово настроить viисторию поиска с шаблоном, тогда я мог бы использовать/ + + Return, без повторного ввода или копирования/вставки, чтобы найти все шаблоны. Затем я могу использовать , :n!чтобы перейти к следующему файлу и продолжить использовать шаблон.

Похоже, что шаблон сохранен..viminfo в моем каталоге. Могу ли я просто обновить этот файл перед запуском viили есть какая-то библиотека или утилита командной строки, чтобы сделать это?

решение1

Нет необходимости исправлять ~/.viminfoфайл.

Как вы используетеvim вы можете использовать +/patternопцию командной строки, чтобы поместить курсор на строку шаблона. После этого вы можете использовать , nчтобы перейти к следующим вхождениям (если не в начале строки, то это будет первое вхождение, в противном случае второе вхождение).

На странице руководства написано, что курсор будет на первом вхождении шаблона, но по моему опыту он находится на первом символе строки с этим шаблоном. Со страницы vim man:

+/{pat}     For  the  first  file the cursor will be positioned on the
            first occurrence of {pat}.  See ":help search-pattern" for
            the available search patterns.

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