Cara membuka file di vim menggunakan pipa


14

Saya locatesering menggunakan perintah.

Jadi jika saya menjalankan perintah berikut.

locate updatedb | head -1

Maka itu memberi saya O/p

/usr/updatedb.conf

Saya ingin tahu apakah ada perintah seperti itu yang bisa saya buka file itu secara langsung?

Saya berharap sesuatu seperti ini.

locate updatedb | head -1 | vim

Jawaban:


21

Anda hampir selesai:

$ locate updatedb | head -1 | xargs vim

kadang-kadang (di bawah terminal tertentu) Anda perlu mengatur ulang terminal setelah diedit.

$ reset

2
Kemungkinan besar versi Anda locatememiliki -l/ --limit/ -nopsi sehingga Anda tidak perlu head -1:locate -n 1 updatedb | xargs vim
Dmitry Alexandrov

1
Mengapa terminal korupsi ini terjadi? Apakah ada cara untuk menghindarinya?
Jacobo de Vera

16

Sebagai editor interaktif, Vim membutuhkan stdin dan stdout, jadi menggunakannya di dalam pipa adalah masalah dan membuat Vim memperingatkan tentang hal ini. Untuk hanya satu file, proses substitusi memecahkan ini 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`

Ini juga berfungsi pada string dengan spasi, yang bagus untuk nama file seperti "versi 2 - final.csv".
Alex Moore-Niemi

0

Saya tahu ini adalah solusi buruk tetapi saya menggunakan ini untuk membuat alias di .bashrc:

locate updatedb  > /tmp/vimForTempDontTouch && vim /tmp/vimForTempDontTouch

Kelemahan: jelek

Keuntungan: Tidak ada efek samping dengan terminal

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.