Ya casi has terminado:
$ locate updatedb | head -1 | xargs vim
a veces (bajo ciertas terminales) necesita restablecer la terminal después de editar.
$ reset
Como editor interactivo, Vim necesita tanto stdin como stdout, por lo que usarlo dentro de una tubería es problemático y hace que Vim advierta sobre esto. Para un solo archivo, la sustitución de procesos resuelve esto fácilmente:
vim "$(locate updatedb | head -1)"
También puedes usar acentos graves, y eso incluso funciona dentro de Vim:
:edit `locate updatedb | head -1`
Además de la respuesta anterior, para evitar la "corrupción del terminal" indicada por Jacobo de Vera en el comentario, use la opción xargs -o
o --open-tty
para hacer que vim asuma que la entrada es de una terminal, no de una entrada estándar.
$ locate updatedb | head -1 | xargs -o vim
Consulte:https://unix.stackexchange.com/a/44428/307359