5

Есть ли в vim команда для перехода к первому результату поиска в файле (т. Е. С наименьшим номером строки)? Скажем, если я сделаю /foo , могу ли я найти первый экземпляр foo в файле (не начиная с того места, где я нахожусь в файле, а начиная с начала файла)?

6 ответов6

11

ggn приведет вас к первому поиску в файле - gg даст вам начало файла, а n перейдет к следующему совпадению вашего шаблона.

Вы также можете использовать gg2n для перехода ко второму экземпляру в файле или gg42n для перехода к сорок второму экземпляру. Вы также можете использовать G$N для перехода к финальному совпадению (G выводит вас на последнюю строчку, $ приводит вас к концу этой строки и N ищет назад) или G$2N для перехода к предпоследней.

7

Непонятные Ex команды для победы:

:ij[ump] foo  "jumps to first foo that is not in a comment
:ij[ump]! foo "jumps to first foo, comment or not

Смотрите также :il[ist] .

4

Используйте команду gg чтобы перейти к началу файла.

gg

/foo
2

Команда gD будет искать в верхней части файла слово под курсором.

Связанная команда gd будет искать сверху текущей c-подобной функции.

1

Методы, основанные на использовании gg и последующем поиске через /foo или n , хороши для интерактивного использования, но при пакетном редактировании с аргументом Vim -S они не будут работать, если искомое слово является первым словом в файле; в этом случае ваш курсор будет установлен во второй раз.

Надежный метод - это команда ex :0/foo . Если вы введете только адрес в команде ex, вы перейдете по этому адресу, поэтому :12 приведет вас к двенадцатой строке. ed/ex/Vim поддерживает шаблоны поиска в качестве адресов, поэтому :/foo приведет вас к первому совпадению с позиции курсора (неявное "." в начале). :0/foo означает «первый« foo »из нулевой строки».

0

Еще один крутой ярлык, если ваш курсор находится на одном из совпадений в файле:

[<C-i>

(Просто чтобы быть ясно, что это левая скобка ([), а затем control-i)

Это похоже на использование команды «*», но она идет к первому совпадению в файле, а не к следующему совпадению после курсора

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