Перенаправление вывода команды "найти" в "vim"

Я делаю поиск $PWD-name 'filename' | vim -

ожидает, что имя файла будет открыто в редакторе vim. Но это не работает. В этом случае я уверен, что существует только один файл с именем "filename".

Также результат поиска дает полный путь к stdout.

Ответ 1

vim "$(find "$PWD" -name 'filename')"

или

find "$PWD" -name 'filename' -exec vim {} \;

(Кстати, вы можете отбросить "$PWD". find по умолчанию запускает поиск из текущего каталога.)

Ответ 2

find . -name 'filename' -print0 | xargs -0 vim

также должен работать. Возможно, вы захотите прочитать на xargs, что полезно знать.

Ответ 3

Упоминается в комментарии @idbrii, но мой любимый:

find . -name 'filename' -type f -exec vim {} \+

Это открывает каждый файл, найденный в его собственном буфере, готовый к навигации с помощью :next и :prev. Протестировано на OSX, но я уверен, что он тоже будет работать на Linux.