Команда vim find
отличается от команды unix find
. Чтобы узнать, что делает find
, используйте онлайн-справку!
:h find
Это даст вам ответ:
:fin[d][!] [++opt] [+cmd] {file}
Find {file} in 'path' and then :edit it.
Другими словами, :find
похоже на :edit
но смотрит в ваш path
вместо только текущего каталога. Обратите внимание, что vim path
отличается от переменной оболочки операционной системы PATH
. Вы можете узнать, что находится в вашем path
с помощью
set path?
Скорее всего, у вас нет всех подкаталогов вашего проекта на вашем пути (или в вашем PATH). Как и вы.
Если вы хотите отредактировать файл с именем, оканчивающимся на Controller. php, простое решение для поиска в каждом подкаталоге состоит в том, чтобы указать **
перед именем файла для подстановочного совпадения с каждым подкаталогом:
:e **/*Controller.php
Обратите внимание, что выполнение вышеуказанного откроет только первый файл, соответствующий шаблонам. Если есть несколько подходящих файлов, и это был не тот файл, который вы хотели, не повезло.
Если вы хотите выбрать файл из нескольких совпадений и не хотите использовать плагины, вы можете прочитать список, используя команду unix file
:r! find . -name \*Controller.php
Вы закончите с буфером со списком файлов. Чтобы открыть один из файлов, поместите курсор над именем файла и используйте команду gf
, чтобы открыть его.
Хотя на самом деле это не ответ на ваш вопрос, с vanilla vim завершается wildmode
из командной строки. Если wildmode
включено, vim завершит имена файлов, когда вы откроете новый файл с :e
.
Наконец, существует множество различных плагинов для нечеткого поиска для vim. Если вам не нужно windows, я рекомендую fzf.