Saya mencoba mengarahkan output dari perintah bash ke file baru.
Jika saya mencoba pipa seperti di bawah ini:
ls -la | vim
Bash menunjukkan kesalahan kepada saya:
Vim: Error reading input, exiting...
Vim: preserving files...
Vim: Finished.
Saya tahu bahwa saya bisa membuka Vim dan kemudian menggunakan:
:r !ls -la
Tetapi apakah ada cara untuk melakukan ini di bash itu sendiri, sehingga Vim dibuka dan output disisipkan di sana secara otomatis?
<(ls -la)
sebenarnya proses substitusi daripada substitusi perintah .Anda benar-benar dekat dengan Anda sendiri. Anda hanya kehilangan satu karakter.
sumber
Inilah pendekatan lain, semoga untuk mengajarkan seseorang sesuatu yang baru.
Jika Anda tahu bahwa perintah itu
:r !ls -la
berfungsi di dalam vim, Anda bisa melakukan yang berikut untuk membuka vim dan membuatnya menjalankan perintah segera setelah terbuka, langsung dari bash:Ini sama dengan membuka
vim
lalu menjalankan perintah:r! ls -la
. Ini harus bekerja denganvim
perintah apa pun , di mana perintah datang setelah-c
opsi.sumber
Anda dapat memberitahu vim untuk membuka stdin:
sumber
Jika tujuan Anda hanya untuk mendapatkan output ke file teks maka Anda tidak perlu memanggil vim. Bash bisa melakukannya sendiri
sumber
setlocal buftype=nofile
Ini adalah opsi yang baik jika Anda ingin membuat alias untuk menggantikan
less
:Sekarang Anda tidak perlu mengetik! berhenti.
Pilihan lain adalah:
sehingga Anda bisa keluar hanya dengan
q<enter>
.sumber