Ответ 1
Второй работает для меня. Третий тоже, хотя вы получаете только один файл, видимый с самого начала. 4 в большинстве случаев совпадает с 2. Первый и последний не должны работать по дизайну.
Как вы можете поместить список файлов в Vim -o -mode?
У меня есть список файлов как вывод Grep. Я бегу безуспешно
grep -il sid * | vim -o
grep -il sid * | xargs vim -o
grep -il sid * | xargs vim
vim -o `grep -il sid *`
vim -o | grep -il sid *
Второй работает для меня. Третий тоже, хотя вы получаете только один файл, видимый с самого начала. 4 в большинстве случаев совпадает с 2. Первый и последний не должны работать по дизайну.
Попробуйте
vim -p `grep -il sid *`
если вы хотите открыть файлы на разных вкладках в том же окне.
Run:
grep -il sid * | vim -
Это говорит vim, чтобы прочитать файл из stdin, поэтому вывод grep будет в vim. Теперь поместите курсор на файл и нажмите gF - это откроет файл на указанной строке grep.
Вы также можете использовать ^ WF, чтобы открыть файл в новом расколе.
Жаль, что я опаздываю. Некоторые из этих вариантов работают для меня, но с необычными побочными эффектами. Попробуйте следующее:
vim -o $(grep -il sid *)
Чтобы вызвать vim
с помощью xargs
, xargs
должен быть вызван с -o
:
grep -il sid * | xargs -o vim -o
Если имена файлов могут содержать пробелы, используйте grep -Z
с xargs -0
grep -ilZ sid * | xargs -0 -o vim -o
Без xargs -o
мы получили бы предупреждение:
Vim: Warning: Input is not from a terminal
Параметр -o
существует в OSX/BSD. Кроме того, опция -o
находится в GNU findutils, построенном из git. Эта опция была добавлена после 4.6.0.
Второй должен работать, если некоторые из этих имен файлов не содержат пробелов. Вы должны сделать
grep -il sid * | xargs -d "\n" vim -o
если это возможно. -d "\n"
указывает xargs использовать новую строку как разделитель при чтении аргументов; обычно это пробелы (символ новой строки, табуляции или пробела)