trovo spesso ritrovo a fare un flusso di lavoro come questo:modo rapido per modificare la linea n-esima di output del comando precedente
$ find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt
(recensione uscita)
$ vim ./tmp/somefile.xml
Ora, sarebbe stato facile se non ci era un modo conveniente di utilizzare l'output del comando find e alimentarlo a vim.
Il migliore che è venuta in mente è:
$ nth() { sed -n $1p; }
$ find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt
(recensione uscita)
$ vim `!!|nth 2`
Mi chiedevo se ci sono altri, forse più bella, modi di realizzare la stessa cosa?
Per chiarire, voglio un modo comodo di afferrare l'ennesima riga da un comando eseguito in precedenza per aprire rapidamente quel file per la modifica in vim, senza dover tagliare il nome del file con il mouse o la scheda-completare la mia strada attraverso il percorso del file.
Penso che piping il comando su' vim -' e poi usare 'gf' è la soluzione che mi sentirei più a mio agio. Comunque il mio vim mi richiede di salvare il buffer dell'elenco file prima di permettermi di fare 'gf'. C'è un modo per rendere buffer di trattare vim da stdin come buffer temporanei/nascosti? – Erik
L'aggiunta di 'set hidden' a ~/.vimrc sembra fare il trucco. Grazie a tutti! – Erik
@Erik Ho modificato la tua domanda, per aggiungere un nuovo tag "vim". spero che non ti dispiaccia. – Kent