Per illustrare, ecco come farlo dalla riga di comando:in vim, come impostare "args" sul risultato di un "grep -l"?
vim `grep "hello" * -Rl`
Questo apre vim con tutti i file che sono "ciao" in loro (-l dà i nomi dei file da solo). Voglio fare la stessa cosa, ma da dentro. Concettualmente, qualcosa di simile (che non funziona):
:args !grep "hello" * -Rl
Sono aperto a completamente diversi approcci per raggiungere questo obiettivo; Mi piacerebbe che fosse su una riga (quindi è facile da modificare e ripetere).
La risposta è di utilizzare semplicemente apici inversi - ma con una clausola chiave! Il sotto non funziona per me, a causa delle citazioni intorno hello
:
:args `grep "hello" * -Rl`
Ma funziona se tolgo loro o sfuggire alle citazioni:
:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`
(questo è stato sepolto nel commenti dopo la risposta del caos - li ho aggiunti qui per renderli più visibili, nel caso in cui qualcun altro avesse questo problema)
grazie, ho provato a utilizzare i backtick, ma vim non li ha riconosciuti, invece interpreta "grep" come nome file. Hai la risposta per lavorare per te? Se è così, mi chiedo perché non funziona per me. – 13ren
Sì, ha funzionato bene per me. Forse una versione. Sto usando 7.0.305. – chaos
hmmm,: la versione mi dà: VIM - Vi IMproved 7.0 (2006, 7 maggio, compilato 31 gen 2007 18:15:57) Patch incluse: 1-122 – 13ren