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

11

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

vim `grep "hello" * -Rl`

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

:args !grep "hello" * -Rl

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

Ответ заключается в том, чтобы просто использовать обратные пометки -but with a key proviso!  Ниже не работает для меня, из-заquotes вокругhello:

:args `grep "hello" * -Rl`

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

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

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

Ваш Ответ

2   ответа
8

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

:args `grep -Rl "hello" *`

Запуск vim 7.0.305.

спасибо, я попытался использовать обратные пометки, но vim не распознал их - вместо этого он интерпретирует "grep" как имя файла. Вы получили свой ответ, чтобы работать на вас? Если это так, мне интересно, почему это не работает для меня. 13ren
хммм,: версия дает мне: VIM - Vi IMproved 7.0 (2006 7 мая, скомпилировано 31 января 2007 18:15:57) Включенные патчи: 1-122 13ren
Я не нахожу ничего связывающего расширение backtick с опциями компиляции. Есть кое-что в том, что расширение backtick не работает в ограниченном режиме (опция -Z при запуске), но я не знаю, почему вы работаете под этим.
Хорошо, я обновился до версии 7.1.314, но та же проблема. Я вырезал и вставил ваш код, так что это не опечатка. Может быть, это опция компилятора или настройка. Но их так много, что трудно понять, какой именно. 13ren
Да, отлично сработало для меня. Может быть, версия вещь. Я использую 7.0.305.
3

Попробуйтеargs команда:

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

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

:version
Привет еще раз, кажется, что это были цитаты вокруг привет - он работает нормально без них, или если они сбежали. :-) 13ren
Я только что обновился до версии 7.1.314, но та же проблема. Интересно, в чем проблема. 13ren
Хорошо, я рад, что вы нашли проблему! Приветствия.
спасибо, я попробовал это, но & quot; grep & quot; интерпретируется как имя файла ... 13ren
Это версия 7, но не самая последняя. Я сейчас проверяю новую версию. 13ren

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