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

В vim, как установить "args" в результат "grep -l"?

Чтобы проиллюстрировать здесь, как это сделать из командной строки:

vim `grep "hello" * -Rl`

Это открывает vim со всеми файлами, в которых есть "привет" (-l дает имена файлов в одиночку). Я хочу сделать то же самое, но изнутри vim. Концептуально, что-то вроде этого (что не работает):

:args !grep "hello" * -Rl

Я открыт для совершенно разных подходов к этому; Я просто хотел бы, чтобы он был на одной линии (так что легко редактировать и повторять).


Ответ заключается в том, чтобы просто использовать backticks - но с ключевым условием! Нижеследующее не работает для меня из-за кавычек вокруг hello:

:args `grep "hello" * -Rl`

Но он работает, если я удаляю их или избегаю кавычек:

:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`

(это было похоронено в комментариях после ответа хаоса - я добавил их сюда, чтобы сделать их более заметными, на случай, если кто-то еще столкнулся с этой проблемой)

4b9b3361

Ответ 1

Ну, это работает для меня:

:args `grep -Rl "hello" *`

Запуск vim 7.0.305.

Ответ 2

Попробуйте выполнить команду args:

:ar[gs] `grep -Rl "hello" .`

Если обратные ссылки не работают для вас, используете ли вы текущую версию vim?

:version