Gunakan case untuk emulator terminal neovim?

10

Satu perbedaan besar dari neovim dan Vim adalah bahwa neovim mencakup emulator terminal yang bekerja secara tidak sinkron.

Namun, saya gagal melihat bagaimana saya mendapat untung dari fitur ini. Untuk apa saya bisa menggunakannya? Bisakah Anda memberikan beberapa use case untuk fitur terminal neovim sehingga saya mengerti bagaimana saya bisa menggunakannya sejauh yang terbaik?

Dalam biasa Vim Saya biasanya menggunakan :read !{command}, :write !{command}, Ctrl+Zdan fgserta tmux jendela split.

cbaumhardt
sumber
Satu masalah dengan <C-z>adalah bahwa proses Vim ditangguhkan oleh OS: itu tidak melakukan apa-apa (termasuk menanggapi perintah server).
Martin Tournoij
Apakah itu akan membantu untuk digunakan :shelldengan exitatau malah ditangguhkan di sini juga?
cbaumhardt
1
@Carpetsmoker, apa yang Anda harapkan dari editor teks Anda saat Anda tidak menggunakannya?
romainl
@romainl Nah, misalnya saya punya skrip yang akan memfokuskan sesi Vim mengedit file tertentu; ini akan tergantung pada proses Vim yang ditangguhkan ...
Martin Tournoij
1
Itu bukan masalah dengan <C-z>, itu masalah dengan skrip Anda.
romainl

Jawaban:

10

Menjalankan terminal di dalam Vim memungkinkan Anda untuk menggunakan perintah Vim pada input dan output ke program yang Anda jalankan di terminal itu. Anda mendapatkan pencarian, salin-tempel, makro, pewarnaan sintaks, dll. Menggunakan :read !{command}dan :write !{command}memberi Anda itu untuk perintah sekali pakai, tetapi input / output asinkron menjadi berguna ketika Anda ingin mengirimkan input ke program eksternal sepotong demi sepotong.

Kasus penggunaan yang umum adalah loop read-eval-print (REPL), yang disediakan oleh banyak bahasa pemrograman tingkat tinggi. Anda mengetik bait dalam kode sumber Anda, lalu mengumpannya ke REPL untuk umpan balik segera. Karena REPL terus berjalan dari satu pengiriman ke yang berikutnya, cuplikan kode yang dikirimkan dijalankan sesuai konteks.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
6

Saya pikir opsi untuk membuat pemetaan hanya terminal berharga, dan memperluas opsi yang Anda miliki di emulator terminal lain, misalnya memetakan t untuk menjalankan unittests dengan konfigurasi spesifik, yang hanya dapat Anda capai melalui alias kompleks atau fungsi bash.

Beka
sumber
4

Kasus penggunaan yang paling jelas yang dapat saya pikirkan adalah pemrograman. Pernahkah Anda ingin menjalankan tes di dalam VIM, atau mengkompilasi, atau menggunakan alat konsol apa pun? Saya tahu orang-orang menggunakan Tmux, tetapi saya tahu Anda bisa melakukannya di dalam NeoVIM, saya harus katakan. Ini cukup luar biasa !!!

Jika Anda menggunakan buffer, Anda dapat menambah, menghapus, menyembunyikan, dan menampilkan terminal sesuka Anda. Itulah untungnya;)

Menjalankan shell di dalam NeoVIM

Gildardo Adrían Maravilla
sumber
3

Kasing penggunaan terbaik yang dapat saya pikirkan adalah yang asli-ADM-3a pada garis 110 bps! Kadang-kadang benar-benar tidak ada pengganti untuk melihat hal-hal berdampingan, dan :!rtidak memotongnya.

cxw
sumber
3
Semoga berhasil melakukan apa saja dalam dua jendela berukuran 39x12 (atau 39x24!) ;-)
romainl