Už jste skoro hotovi:
$ locate updatedb | head -1 | xargs vim
někdy (u některých terminálů) je třeba po úpravě terminál resetovat.
$ reset
Jako interaktivní editor potřebuje Vim stdin i stdout, takže jeho použití v rouře je problematické a Vim na to varuje. Pro pouhý jeden soubor to snadno vyřeší substituce procesu:
vim "$(locate updatedb | head -1)"
Můžete také použít zpětné zaškrtnutí, a to funguje i uvnitř samotného Vimu:
:edit `locate updatedb | head -1`
Kromě výše uvedené odpovědi, abyste se vyhnuli „poškození terminálu“, které uvedl Jacobo de Vera v komentáři, použijte volbu xargs -o
nebo --open-tty
aby vim předpokládal, že vstup pochází z terminálu, nikoli ze standardního rozhraní.
$ locate updatedb | head -1 | xargs -o vim
Viz:https://unix.stackexchange.com/a/44428/307359