Как я могу открыть файл, который следует из grep?

Вы могли попытаться выполнить avconv с более высоким приоритетом; это может заставить игру замедляться, но:

nice n=-10 aconv ...

Это предполагает, что проблема состоит в том, потому что aconv не заставляет достаточно процессорного времени делать то, что это должно сделать. Независимо от того, что это согласно моим комментариям, это - не потому что это не может записать в диск достаточно быстро.

Посмотрите man nice если Вы не услышали о нем прежде.

17
17.02.2014, 20:35
7 ответов
Используйте [11700]grep -l[11701], чтобы просто получить имя файла, а не соответствующий текст, а затем объедините его с [11702]vim[11703]: [12143]
20
27.01.2020, 19:47
EDIT: После прочтения вашего комментария, Я понимаю, что изначально не понял вопроса. Вот простой скрипт, который принимает ваш поисковый термин в качестве аргумента и подсказывает путь к поиску. Если результат найден только в одном файле, он открывает файл для редактирования в месте нахождения результата поиска.[12155]
0
27.01.2020, 19:47

Вы можете использовать QuickFix или Errorfile Функция VIM :

$ grep -n foo * > /tmp/foo.list
$ vim -q /tmp/foo.list

VIM откроет первый файл в /tmp/foo.list и поместите курсор прямо в линию, где был найден FOO . Вы можете перейти к следующему экземпляру, используя : CN и предыдущий экземпляр с использованием : CP .

Сбочная записка : если вы уже используете VIM или GVIM , то я бы предложил использовать его встроенные функциональные возможности . Читать : Помогите Vimgrep для получения дополнительной информации.

5
27.01.2020, 19:47

Для поиска в проекте не нужно оставлять vim с Fugitive

autocmd QuickFixCmdPost * grep * cwindow

Ниже вы можете увидеть пример : Ggrep config

enter image description here

1
27.01.2020, 19:47

@devnull получил правильный ответ в этом комментарии:

Вы были довольно близки, просто скажите vim читать из STDIN:

grep foo | vim -

0
27.01.2020, 19:47

Чтобы расширить ответ Антона для случая, когда у вас есть более одного совпадения, в некоторых случаях может быть полезно использоватьhead -1(из этот ответ ), чтобы выбрать только первый результат:vim "$(grep -l STRING FILES|head -1)"

0
27.01.2020, 19:47

Если вы выполняете длинную команду, где где-то в середине есть grep, вы также можете

vim `command1 | grep whatever | awk '{do_something_else}'`
0
27.01.2020, 19:47

Теги

Похожие вопросы