Saya tahu saya bisa :!
atau :r!
menjalankan perintah eksternal dan secara opsional memasukkan outputnya ke dalam teks. Saya bahkan dapat melakukan :!sh
dan saya akan menelurkan shell yang akan hidup sampai saya keluar - tetapi sementara shell aktif, Vim 'tertidur' dan tidak dapat diakses. Saya harus keluar dari shell, dan menelurkan yang baru jika saya ingin kembali ke Vim sejenak - tidak terlalu berguna.
Saya dapat mengakses shell di ujung yang berlawanan, dengan menangguhkan Vim dengan ^Zdan mengelola pekerjaan Vim melalui bg
, fg
dan jobs
. Ini lebih masuk akal tetapi sangat rumit dalam jangka panjang. Saya dapat menggunakan Screen
jika itu tersedia (sering tidak), atau membuka beberapa jendela manajer jendela saya (dan ssh untuk menargetkan host dari masing-masing secara berurutan, untuk memiliki vim dan shell pada host jarak jauh, rumit lagi.)
Akan lebih rapi jika Vim mengizinkan saya untuk membuka sesi shell dan menyimpannya, katakanlah, di salah satu jendela (internal), atau izinkan saya untuk beralih ke sana dan kembali. Apakah hal seperti ini mungkin?
:split
, sambil mempertahankan file di jendela lain? ... Ini kedengarannya seperti pekerjaan untuk tmux atau layar bagi saya ...Jawaban:
Ada beberapa plugin vim yang memungkinkan untuk ini. Saya menggunakan Conque ( Github ).
Setelah meletakkannya di direktori plugin Anda, yang harus Anda lakukan adalah:
Dan Anda akan memiliki bash shell interaktif di vim. Anda kemudian dapat menggunakan gerakan vim biasa untuk melakukan hal lain yang mungkin ingin Anda lakukan di jendela.
Plugin lainnya adalah vimshell .
sumber
:help shell-window
. (Jawaban singkat: tidak.)Dengan VIM saya percaya plugin yang ada untuk melakukan ini tidak terlalu bagus, meskipun IMO vimshell datang paling dekat. Namun Anda perlu memahami bahwa ini adalah masalah 2 bagian.
Menurut pendapat saya ada 2 pendekatan yang bekerja jauh lebih baik dalam hal ini.
Saya harus menambahkan bahwa ada kemungkinan besar bahwa NeoVIM dapat membawa perubahan dalam aspek ini karena salah satu tujuan utamanya adalah mampu melakukan pekerjaan secara serempak. Tapi sampai saat ini inilah yang terbaik yang bisa kami dapatkan menurut saya.
sumber
Dalam
:help shell-window
kita dapat membaca tentang mengeksekusi perintah shell di jendela:Namun ada beberapa solusi yang dapat Anda gunakan:
penggunaan
screen
yang dirancang khusus untuk hal-hal semacam itu, misalnya:Lihat lebih lanjut di: Panduan Survival Layar GNU di stackoverflow SE
Atau: Pemisahan Layar GNU , layar Referensi Cepat untuk detail lebih lanjut.
VIM-Shell - tambalan pihak ketiga
vterm - Terminal emulator di dalam vim.
Vimux - mudah berinteraksi dengan tmux dari vim.
lainnya telah disebutkan: Conque
Terkait: Bagaimana menjalankan terminal di dalam vim? di stackoverflow
sumber