Apakah mungkin dalam vim untuk membuat tampilan split untuk penggunaan baris perintah?

12

Saya tahu tentang opsi :!ls, tetapi saya ingin menggunakan salah satu antarmuka yang terpecah (setelah digunakan :sp) sebagai jendela baris perintah. Apakah ini mungkin? Jika ya, bagaimana saya melakukannya?

p1100i
sumber
3
Ada plugin dan / atau tambalan untuk melakukannya. Tetapi Anda cepat atau lambat akan mengalami beberapa keanehan. Saran saya adalah menggunakan terminal ringan berfitur lengkap, atau layar / tmux.
Marco
vim8 memiliki mode terminal bawaan .. lihat di sini: superuser.com/a/1312655/658319
alpha_989

Jawaban:

9

Tidak seperti Emacs, Vim mencoba menjadi sedikit lebih minim ketika harus bekerja dengan shell. Ia tidak memiliki opsi untuk menyertakan shell interaktif di dalam salah satu tab atau buffernya.

Meskipun ada solusi untuk ini. Sama seperti Anda, saya sangat suka memiliki bashjendela di sesi terminal yang sama dengan Vim yang sedang saya jalankan. Ini sangat berguna saat mengedit file sumber. Dalam kasus saya, saya benar-benar ingin lingkungan Ruby REPL berjalan sehingga saya dapat menguji pernyataan sebelum saya meletakkannya di file sumber.

Saya menggunakan Tmux untuk menyelesaikan jendela split. Di Tmux saya membuat jendela split (kunci default adalah ctrl + b, "). Ini akan membuka 2 sesi shell interaktif seperti jendela split di Vim. Kemudian saya menjalankan Vim di salah satu sesi dan saya siap.

Anda dapat melihat dari gambar di bawah ini bahwa saya telah membagi jendela secara horizontal dengan bashdi atas dan Vim di bawah.

masukkan deskripsi gambar di sini

Saya juga menggunakan Tmux untuk mendukung pemrograman pasangan dengan yang lain. Anda dapat membaca lebih lanjut tentang pengaturan saya di blog saya di http://jjasonclark.com/Remote-Pairing-with-SSH-and-Tmux-on-a-Mac .

Jason
sumber
7

Tidak yakin apakah Anda mencari solusi layar GNU, atau solusi menggunakan pemisahan bawaan Vim, tetapi jika Anda mencari yang terakhir, ini bekerja untuk saya:

vim -O file_a.js file_b.js

Itu membuka kedua file dengan split vertikal. Untuk regular (split horizontal), gunakan saja huruf kecil -o.

PS Ctrl+ w, wuntuk beralih di antara keduanya (saya menemukan cara yang bagus untuk membedakan pemisahan layar dan pemisahan vim).

JM Janzen
sumber
5
Meskipun ini tidak menjawab pertanyaan asli, jawaban ini memang menjawab permintaan pencarian google saya yang membuat saya di sini. :)
Mihai Alexandru Bîrsan
Ditto - terima kasih!
CaseyR
7

Vim 8 memiliki mode terminal bawaan.

Anda dapat mengetik :teruntuk mendapatkan akses ke terminal.

Untuk menavigasi melalui perintah dalam penggunaan shell default Anda j,k.

Anda dapat memperoleh informasi lebih lanjut dengan mengetikkan :h terVIM8.

Catatan : VIM8 Anda harus memiliki +terminalagar ini berfungsi.

alpha_989
sumber
6

Sudahkah Anda mencoba layar ? Adakah alasan yang tidak sesuai untuk Anda?

Alex Nye
sumber
3

Saya mencari ini untuk waktu yang lama dan sebanyak yang saya bisa katakan tidak ada yang baik benar-benar mungkin. Saya telah mencoba banyak plugin / addon untuk vim tetapi tidak ada yang berfungsi seperti yang saya inginkan.

Yang ini bagus: ConqueTerm

Namun memiliki beberapa ketidakkonsistenan dengan warna. Cobalah mungkin berhasil untuk Anda.

pekerja baris
sumber
1

Anda dapat menggunakan NeoVim, ia memiliki mode terminal bawaan yang mirip dengan emacs (walaupun sangat baru) - ini memungkinkan Anda memilikinya di jendela seperti buffer vim lainnya

alcesleo
sumber