Есть ли в vim команда для перехода к первому результату поиска в файле (т. Е. С наименьшим номером строки)? Скажем, если я сделаю /foo , могу ли я найти первый экземпляр foo в файле (не начиная с того места, где я нахожусь в файле, а начиная с начала файла)?
6 ответов
ggn приведет вас к первому поиску в файле - gg даст вам начало файла, а n перейдет к следующему совпадению вашего шаблона.
Вы также можете использовать gg2n для перехода ко второму экземпляру в файле или gg42n для перехода к сорок второму экземпляру. Вы также можете использовать G$N для перехода к финальному совпадению (G выводит вас на последнюю строчку, $ приводит вас к концу этой строки и N ищет назад) или G$2N для перехода к предпоследней.
Непонятные 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] .
Используйте команду gg чтобы перейти к началу файла.
gg
/foo
Команда gD будет искать в верхней части файла слово под курсором.
Связанная команда gd будет искать сверху текущей c-подобной функции.
Методы, основанные на использовании gg и последующем поиске через /foo или n , хороши для интерактивного использования, но при пакетном редактировании с аргументом Vim -S они не будут работать, если искомое слово является первым словом в файле; в этом случае ваш курсор будет установлен во второй раз.
Надежный метод - это команда ex :0/foo . Если вы введете только адрес в команде ex, вы перейдете по этому адресу, поэтому :12 приведет вас к двенадцатой строке. ed/ex/Vim поддерживает шаблоны поиска в качестве адресов, поэтому :/foo приведет вас к первому совпадению с позиции курсора (неявное "." в начале). :0/foo означает «первый« foo »из нулевой строки».
Еще один крутой ярлык, если ваш курсор находится на одном из совпадений в файле:
[<C-i>
(Просто чтобы быть ясно, что это левая скобка ([), а затем control-i)
Это похоже на использование команды «*», но она идет к первому совпадению в файле, а не к следующему совпадению после курсора
