Anda hampir selesai:
$ locate updatedb | head -1 | xargs vim
terkadang (pada terminal tertentu) Anda perlu mengatur ulang terminal setelah mengedit.
$ reset
Sebagai editor interaktif, Vim membutuhkan stdin dan stdout, jadi menggunakannya di dalam pipa bermasalah dan membuat Vim memperingatkan tentang hal ini. Untuk satu file saja, substitusi proses menyelesaikannya dengan mudah:
vim "$(locate updatedb | head -1)"
Anda juga dapat menggunakan backticks, dan itu bahkan berfungsi di dalam Vim itu sendiri:
:edit `locate updatedb | head -1`
Selain jawaban di atas, untuk menghindari "korupsi terminal" yang dinyatakan oleh Jacobo de Vera di komentar, gunakan opsi xargs -o
atau --open-tty
untuk membuat vim menganggap input dari terminal, bukan stdin.
$ locate updatedb | head -1 | xargs -o vim
Lihat:https://unix.stackexchange.com/a/44428/307359
Tambahkan sudoer secara non-interaktif dari baris perintah
sudoedit:mengapa menggunakannya di sudo vi?