Saya dapat membuka shell dengan menggunakan perintah: shell di Vim, namun saya tidak dapat mengedit file dan pada saat yang sama menggunakan shell.
Apakah ada cara untuk membagi Vim di banyak Windows (atau tab), dan membuka shell di salah satunya?
Saya dapat membuka shell dengan menggunakan perintah: shell di Vim, namun saya tidak dapat mengedit file dan pada saat yang sama menggunakan shell.
Apakah ada cara untuk membagi Vim di banyak Windows (atau tab), dan membuka shell di salah satunya?
Jawaban:
Neovim dan Vim 8.2
mendukung ini secara native melalui :ter[minal]
perintah.
Lihat terminal-window
di dokumen untuk detailnya.
vsplit term://bash
jika Anda menggunakan Neovim.
terminal
perintah membagi jendela dan memberikan shell perintah dengan warna khusus pada bilah status jendela. Licin.
Tergantung pada OS Anda - sebenarnya saya tidak mengujinya di MS Windows - tetapi Conque adalah salah satu plugin terbaik di luar sana.
Sebenarnya, ini bisa lebih baik, tetapi berhasil.
:vsp
atau :sp
- membagi vim menjadi dua, tetapi Anda tidak dapat menggunakan: shell hanya pada salah satunya.
Mengapa tidak menampilkan tab lain dari terminal, bukan tab vim lainnya. Jika Anda menyukai idenya, Anda dapat mencobanya: Ctrl-shift-t.
dan beralih di antara ide tersebut dengan Ctrl - pageup
danCtrl - pagedown
Jika Anda hanya menginginkan beberapa perintah shell, Anda dapat membuat perintah shell di vim menggunakan !
Misalnya :!./a.out
.
vim
sihir jalur seperti ini::!./%
Ctrl
-apa pun saya kira jawaban Anda mengasumsikan gnome-terminal atau emulator serupa.
Anda dapat menggunakan tmux
atau screen
(detik hanya dapat melakukan pemisahan horizontal tanpa patch) untuk membagi terminal Anda. Tapi saya tidak tahu cara untuk memiliki satu contoh Vim di kedua panel.
Jika Anda belum mengetahuinya, Anda dapat menggunakan yang menakjubkan plugin layar yang .
Conque juga luar biasa tetapi menurut saya layarnya jauh lebih praktis (misalnya tidak akan "mengotori" buffer Anda dan Anda dapat mengirim perintah yang benar-benar Anda inginkan setelah mengeditnya di buffer Anda)
Saya rasa ini adalah pertanyaan yang cukup lama, tetapi sekarang di tahun 2017. Kami memiliki neovim, yang merupakan cabang dari vim yang menambahkan dukungan terminal.
Jadi memohon :term
akan membuka jendela terminal. Keunggulan dari solusi ini dibandingkan dengan menggunakan tmux (terminal multiplexer) adalah Anda akan memiliki window binding yang sama dengan vim
pengaturan Anda . neovim kompatibel dengan vim, jadi pada dasarnya Anda dapat menyalin dan menempel .vimrc
dan itu akan berfungsi.
Keuntungan lainnya adalah Anda dapat beralih ke mode normal pada terminal yang terbuka dan Anda dapat melakukan penyalinan dan pengeditan dasar. Ini juga sangat berguna untuk git commit saya rasa, karena semua yang ada di buffer Anda dapat Anda gunakan dalam pelengkapan otomatis.
Saya akan memperbarui jawaban ini karena vim juga berencana untuk merilis dukungan terminal, mungkin di vim 8.1. Anda dapat mengikuti kemajuannya di sini: https://groups.google.com/forum/#!topic/vim_dev/Q9gUWGCeTXM
Setelah dirilis, saya yakin ini adalah pengaturan yang lebih unggul daripada menggunakan tmux.
Tidak benar-benar apa yang Anda minta, tetapi Anda mungkin tertarik dengan plugin vim-notebook saya yang memungkinkan pengguna untuk menjaga proses latar belakang tetap hidup dan membuatnya mengevaluasi bagian dari dokumen saat ini (dan untuk menulis output dalam dokumen). Ini dimaksudkan untuk digunakan pada dokumen bergaya notebook yang berisi potongan kode yang akan dievaluasi.
Anda mungkin ingin membuka program "layar", layar terpisah, shell terbuka di satu dan vim di layar lainnya. Bekerja untuk saya.
Saya saat ini menggunakan tmux.
Instalasi: sudo apt-get install tmux Jalankan: tmux
Ctrl + b diikuti oleh Ctr +%: itu membagi jendela terminal Anda menjadi dua bagian vertikal.
Ctrl + "panah kiri | panah kanan": berpindah antar terminal.