Подтвердить что ты не робот

Чтобы открыть файлы в выводе Grep для Vim -o -mode

Как вы можете поместить список файлов в Vim -o -mode?

У меня есть список файлов как вывод Grep. Я бегу безуспешно

1

grep -il sid * | vim -o

2

grep -il sid * | xargs vim -o

3

grep -il sid * | xargs vim

4

vim -o `grep -il sid *`

5

vim -o | grep -il sid *
4b9b3361

Ответ 1

Второй работает для меня. Третий тоже, хотя вы получаете только один файл, видимый с самого начала. 4 в большинстве случаев совпадает с 2. Первый и последний не должны работать по дизайну.

Ответ 2

Попробуйте

vim -p `grep -il sid *`

если вы хотите открыть файлы на разных вкладках в том же окне.

Ответ 3

Run:

grep -il sid * | vim -

Это говорит vim, чтобы прочитать файл из stdin, поэтому вывод grep будет в vim. Теперь поместите курсор на файл и нажмите gF - это откроет файл на указанной строке grep.

Вы также можете использовать ^ WF, чтобы открыть файл в новом расколе.

Ответ 4

Жаль, что я опаздываю. Некоторые из этих вариантов работают для меня, но с необычными побочными эффектами. Попробуйте следующее:

vim -o $(grep -il sid *)

Ответ 5

Чтобы вызвать 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.

Ответ 6

Второй должен работать, если некоторые из этих имен файлов не содержат пробелов. Вы должны сделать

grep -il sid * | xargs -d "\n" vim -o

если это возможно. -d "\n" указывает xargs использовать новую строку как разделитель при чтении аргументов; обычно это пробелы (символ новой строки, табуляции или пробела)