Bagaimana cara membagi terminal menjadi lebih dari satu "tampilan"?


264

Dari vi, jika Anda mengeluarkan perintah :sp, layar terbagi menjadi dua "tampilan", memungkinkan Anda untuk mengedit lebih dari satu file dari terminal yang sama.

Sepanjang garis yang sama, apakah ada cara untuk memiliki beberapa shell terbuka di terminal yang sama?

Jawaban:


350

Anda dapat melakukannya di screenterminal multiplexer.

  • Untuk membelah secara vertikal: ctrlalalu |.
  • Untuk membelah secara horizontal: ctrlalalu S(huruf besar ').
  • Untuk unplit: ctrlalalu Q(huruf besar 'q').
  • Untuk beralih dari satu ke yang lain: ctrlalalutab

Catatan: Setelah pemisahan, Anda harus masuk ke wilayah baru dan memulai sesi baru sebelum ctrlaitu csebelum Anda dapat menggunakan area itu.

EDIT, penggunaan layar dasar:

  • Terminal baru: ctrlalalu c.
  • Terminal ctrlaselanjutnya : lalu space.
  • Terminal sebelumnya: ctrlalalu backspace.
  • Nth terminal ctrlakemudian [n]. (berfungsi untuk n∈ {0,1 ... 9})
  • Beralih antar terminal menggunakan daftar: ctrlalalu " (berguna ketika lebih dari 10 terminal)
  • Kirim ctrlake terminal yang mendasarinya ctrlakemudian a.

18
Tmux juga melakukan ini, dan banyak program terminal memiliki tampilan dan tab terpisah.
Shawn J. Goff

3
@AaronNewton ctrl+alalu lepaskan semuanya shift+s(tidak tahu untuk caps lock, milik saya dinonaktifkan)
shellholic

4
Ctrl A Shift Smemisahkan layar, lalu Ctrl A Tabberalih ke pemisahan lainnya, dan Ctrl A cmembuat bash prompt. Apakah ada cara agar perintah ini berjalan secara otomatis saat memulai screensehingga kita tidak harus menjalankan perintah itu setiap saat.
Michael Butler

2
Versi layar mana untuk pemisahan vertikal? Versi yang saya instal adalah 4.00.03, yang sama dengan unduhan terbaru yang tersedia dari semua mirror yang saya periksa.
Brian Vandenberg

1
Bagaimana cara membuat salah satu jendela vertikal saya lebih lebar dari yang lain? Saya ingin perpecahan 30 | 30 | 40.
mpen

108

Coba tmux (Terminal MUltipleXer):

tangkapan layar tmux

Dan untuk memahami perbedaan antara session, windowdan pane: tmuxnestings


20
Layar vs tmux? tmux mungkin lebih baik untuk penggunaan tingkat lanjut dan lebih modern, tetapi layar dipasang di mana-mana dan berfungsi dengan baik.
user606723

Sumber tmuxdaya bantuan luar biasa lainnya adalah: intro , config , primer dan cheat-sheet .
not2qubit

1
@ user606723 antara lain konfigurasi Tmux sebenarnya dapat dibaca; tidak seperti anjing yang terguling keyboard. Tentu saja Anda dapat puas dengan pembungkus seperti byobu(yang membungkus kedua terminal multiplexer), tetapi Tmux tampaknya lebih unggul dalam beberapa aspek selain konfigurasi. Dan sudah lebih unggul beberapa tahun yang lalu. Layar perlu tambalan untuk membelah kedua arah dan Tmux sudah keluar dari kotak. terakhir tapi tak kalah penting, lisensi mungkin menjadi argumen untuk Tmux atau Layar, tergantung di mana Anda berdiri.
0xC0000022L

1
@ user606723 pada 2019, ini tidak benar lagi. screenhilang dari penginstalan Fedora 30 yang relatif baru, saat tmuxhadir.
Sora.

64

Seperti disebutkan dalam komentar, selain layar, terminal multiplexer lain yang bagus adalah tmux . Anda dapat merujuk ke manual untuk deskripsi lengkap dan referensi perintah. Beberapa operasi dasar untuk memulai adalah:

  • Membagi layar secara vertikal: CtrlbdanShift5
  • Membagi layar secara horizontal: CtrlbdanShift"
  • Beralih antara panel: Ctrlbdano
  • Tutup panel saat ini: Ctrlbdanx

Anda dapat mencapai tata letak yang lebih kompleks dengan memisahkan panel. Anda juga dapat memiliki beberapa jendela dengan panel dan beralih di antaranya.

  • Buat windows: Ctrlbdanc
  • Beralih ke jendela berikutnya: Ctrlbdann
  • Beralih ke jendela sebelumnya: Ctrlbdanp
  • Hancurkan jendela saat ini: CtrlbdanShift7

3
Perhatikan bahwa Anda dapat mengubah awalan tmux ke sesuatu yang lebih mudah dijangkau daripada <Cb>.


19

Terlepas dari saran bagus tentang Layar dan Tmux jika Anda menggunakan semacam window manager, Anda mungkin tertarik dengan Terminator, Anda dapat membagi mode secara horizontal atau vertikal, ditambah tab dan banyak lagi ... berikut adalah daftar fitur yang diambil dari situs web penulis :

  • Atur terminal dalam kotak
  • Tab
  • Seret dan lepas pemesanan ulang terminal
  • Banyak pintasan keyboard
  • Simpan beberapa tata letak dan profil melalui editor preferensi GUI
  • Pengetikan serentak ke grup terminal yang berubah-ubah

Lihat screenshot di situs proyek.

Paling penting Anda dapat menggabungkan Terminator dengan Screen / Tmux.


2
Perhatikan bahwa menggunakan pemisahan Terminator akan menjadi kurang nyaman saat menyalin di antara dua jendela editor Anda.
gb.

Anda dapat mengedit beberapa panel sekaligus setelah mengelompokkan panel (atau hanya memilih semuanya sekaligus), dan Anda dapat mengedit pintasan untuk berpindah panel juga. Saya memiliki ctrl-shift-h/j/k/luntuk bergerak di antara panel, dan ctrl- (shift) -tab untuk beralih antar tab, itu hanya bekerja luar biasa.
sjas

1
bagus kita bisa klik pada mereka untuk fokus; tetapi tidak dapat menemukan cara untuk mendistribusikan terminal secara merata di grid, itu hanya kekacauan yang harus diperbaiki dengan tangan, juga saya perlu menambahkan terminal secara dinamis, oleh karena itu buat mereka diperbarui dalam jaringan yang terdistribusi secara merata, tahu?
Aquarius Power

Terminator adalah program X-windows, bukan program baris perintah seperti tmux dan layar. OP secara khusus disebutkan same terminaldua kali, jadi Terminator atau tilix (sebagaimana disebutkan oleh @sjas) bukan saran yang bagus. Jika Anda berada dalam sesi ssh ke server jauh tanpa server X, Anda bahkan tidak dapat menjalankan alat ini.
haridsv

8

Konsole untuk KDE memiliki fungsi bawaan :

  • Ctrl+ (untuk Membagi Tampilan Kiri / Kanan

  • Ctrl+ )ke Split View Atas / Bawah

  • Shift+ Tabakan menggilir tampilan split

  • Shift+ Left Arrow/ Right Arrowakan menggilir tampilan saat ini melalui tab / tampilan

  • Ctrl+ Shift+ Xuntuk menutup tampilan saat ini


Apakah Anda tahu pintasan keyboard untuk beralih di antara panel tampilan terpisah di konsole?
LangeHaare

1
@LangeHaare SHIFT + TAB akan berputar melalui panel tampilan
chaptuck

7

Gunakan terminator .

Harus tersedia melalui manajer paket favorit Anda, jika Anda menggunakan distribusi utama.

Ini adalah satu-satunya terminal multiplexer di mana copy-paste berfungsi dengan baik dari panel dalam di jendela Anda.

Pembaruan: tilixadalah terminatoralternatif yang hampir sepenuhnya setara dengan terminator (dan di mana copypasting bekerja dengan baik juga). Setelah mengevaluasinya saya masih tetap dengan terminatornamun karena penanganan tab yang lebih baik dan konfigurasi yang lebih mudah (dari POV saya).


Terminator secara teknis bukan multiplexer: "Terminal multiplexer adalah aplikasi perangkat lunak yang dapat digunakan untuk multiplex beberapa konsol virtual, yang memungkinkan pengguna untuk mengakses beberapa sesi terminal terpisah di dalam jendela terminal tunggal atau sesi terminal jarak jauh." (dari Wikipedia)
erb

Ini juga bukan satu-satunya multiplexer di mana copy-paste berfungsi dengan baik dari dalam panel, tmux melakukan ini dengan konfigurasi yang tepat.
erb

@erb - apa sebenarnya yang harus dikonfigurasikan jika saya tidak ingin memilih jalur lengkap yang menjangkau beberapa terminal setelah mengklik tiga kali dan mengapa pengaturan standar yang waras itu tidak waras?
sjas

1
Anda dapat menggunakan mode salin dalam tmux untuk melakukan penyalinan, jika Anda ingin menggunakan mouse, Anda hanya perlu mengaktifkan dukungan mouse, konfigurasi saya ada di sini: github.com/ErikBjare/dotfiles/blob/master/home/. tmux / ... Jika Anda ingin menggunakan clipboard sistem dengan copy-mode melihat ini: unix.stackexchange.com/questions/131011/...
Erb

2
Hah? Kenapa tidak? Anda dapat membuatnya berfungsi hampir persis (jika tidak persis) dengan cara yang sama seperti memilih terminator. Saya pernah menjadi pengguna terminator karena alasan yang sama, begitu konfigurasi selesai, saya tidak pernah melihat ke belakang dan sekarang dapat menghemat RAM dan sumber daya lainnya dengan beralih ke terminal emulator yang lebih ringan karena penyalinan adalah satu-satunya hal yang mengganggu saya.
erb

4

Guake + Byobu

Saya pengguna yang senang dari Guake dengan Byobu di dalamnya, yang secara default digunakan tmux( mungkin lebih baik daripada screen).

Tiga langkah

  1. Instal mereka (tidak perlu PPA di Ubuntu atau Debian, periksa distro lainnya )

    sudo apt install guake byobu
  2. Tambahkan ke kerang yang tersedia (seperti yang saya katakan dalam masalah Guake Github ini ):

    which byobu | sudo tee -a /etc/shells
  3. Preferensi On Guake ( guake-prefs) pilih Byobu sebagai penerjemah default: gambar


  1. Opsional: Hapus centang "Tampilkan bilah tab", karena Anda akan menggunakan Byobu untuk itu:

    gambar

  2. Jika pintasan tidak berfungsi, coba nonaktifkan Guake yang mungkin mengganggu (dalam kasus saya adalah Ctrl+F2pemisahan vertikal): tangkapan layar

Saran lainnya

  1. Pelajari pintasan dengan Shift+ F1atau screencast yang luar biasa ini .
  2. Pelajari perintah terminal byobu yang tersedia dengan apropos byobu
  3. Untuk menggunakan tombol fn pada Midnight Commander gunakan Alt+ atau Shift+ F12untuk menonaktifkan byobu F-keys.

tangkapan layar


2

Coba Pembagian Vertikal untuk Layar GNU

Patch ini menyediakan fitur split vertikal untuk rilis GNU Screen saat ini. Fitur ini dirancang untuk berfungsi dengan cara yang sama seperti perintah split yang ada di layar, tetapi membagi wilayah secara vertikal alih-alih secara horizontal. Kedua bentuk pemisahan dapat digunakan bersama dalam kombinasi / jumlah / urutan yang diinginkan. Sesuatu yang serupa dijadwalkan akan segera muncul di GNU Screen 4.1, dan sudah tersedia di CVS per utas milis ini (dan telah disertakan dalam paket layar Debian dan Ubuntu dimulai dengan 4.0.3-10). Juga, proyek terbaru bernama ScreenWM dirancang khusus untuk bekerja dengan layar vsplit-patched (periksa!).


Untuk lebih spesifik, Ctrl+|pisahkan screendi Ubuntu segera.
Jonatan Öström
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.