Anda belum menggunakan tmux secara maksimal! (Mungkin)

Halo, Habr! Untuk perhatian Anda, saya persembahkan terjemahan dari artikel "(ใŸ ใถ ใ‚“๏ผ‰ ๅ› ใฏ ใพ ใ  tmux ใฎ ็œŸ ใฎ ๅŠ› ใ‚’ ๅผ• ใ ๅ‡บ ใ› ใฆ ใ„ ใช ใ„" .



Kandungan



  • Apa itu tmux
  • Memulai dan memulai sesi baru
  • Membuka jendela baru
  • Transisi jendela
  • Memisahkan jendela dan membuat panel
  • Pindah antar panel
  • Pindah di antara sesi
  • [Penggunaan praktis] Mengalihkan konten yang ditampilkan di tmux
  • [Penggunaan praktis] Menampilkan nama cabang Git di bidang info
  • [Penggunaan praktis] Menampilkan jalur operasi saat ini
  • [Penggunaan praktis] Memanggil cuplikan
  • Tautan ke pengaturan .tmux.conf
  • Kompatibilitas versi tmux


Apa itu tmux



tmux adalah multiplekser terminal. Ketika Anda bekerja pada mesin menggunakan SSH, menjalankan program yang berat, tetapi ingin beralih ke tugas lain, dll. Tanpa menghentikan eksekusi, maka tmux bisa sangat berguna.



Tetapi kemampuan tmux tidak berhenti di situ. Ada berbagai kasus penggunaan praktis untuk tmux, yang ingin saya tunjukkan dengan contoh di bawah ini.



Ide dasarnya mirip dengan mod di Vim. Dengan bantuan prefix'a (pengikatan kunci yang dipesan atau pengikatan kunci) Anda dapat mengubah mod, defaultnya adalah ctrl + b.



Memulai dan memulai sesi baru



Jika OS Anda adalah Ubuntu atau Debian, Anda dapat menginstal tmux dengan perintah `sudo apt-get install tmux`. Di MacOS - brew install tmux.



Perintah untuk menjalankan:



$ tmux


Jika Anda ingin memulai tmux dan segera memberi nama sesi baru, gunakan perintah ini:

$ tmux new -s {   }


gambar



Membuka jendela baru



Setelah Anda membuat sesi di tmux, Anda juga dapat membuat jendela baru. Tautan standarnya adalah "ctrl + b + c". Jika Anda tetap menggunakan awalan, Anda dapat menggunakan tautan "awalan + c". Kemungkinan besar, nilai "c" adalah create, karenanya menjadi bundel seperti itu.



gambar



Transisi jendela



Anda juga dapat dengan bebas beralih di antara jendela yang dibuat. Binding standar untuk ini adalah "prefiks + p" (p - sebelumnya) dan "prefiks + n" (n - berikutnya).



Menggunakan awalan tidak selalu nyaman, jadi saya telah menyesuaikan pengikatan tombol untuk beralih antar jendela: shift + rightKey untuk jendela berikutnya dan shift + leftKey untuk yang sebelumnya.



gambar



Memisahkan jendela dan membuat panel



Memisahkan jendela di tmux mirip dengan membelah di vim. Anda membagi jendela menjadi beberapa panel, sehingga Anda dapat membuka vim di satu jendela, htop di panel lain, dan menjalankan program di panel ketiga.



Tanpa keybinding, perintah untuk memisahkan jendela adalah awalan + "split-window -h", prefix + "split-window -v".



Karena saya tidak benar-benar ingin meresepkan ini setiap saat, saya membuat hotkey untuk diri saya sendiri dalam bentuk awalan + "-", awalan + "|".



gambar



Pindah antar panel



Perintah standar untuk berpindah antar panel rumit, sangat tidak nyaman digunakan, jadi saya menetapkan hotkey saya dalam kasus ini juga: ctrl + shift + upKey, ctrl + shift + downKey, ctrl + shift + rightKey, ctrl + shift + leftKey.



gambar



Pindah di antara sesi



Dengan menggunakan kombinasi tombol ctrl + t, Anda dapat memanggil daftar sesi, dan menggunakan tombol โ†‘ โ†“ untuk memilih sesi yang diperlukan.



gambar



[Penggunaan praktis] Mengalihkan konten yang ditampilkan di tmux



Pada dasarnya, tmux adalah sejenis terminal virtual, yang terdapat di direktori / dev / pts / {fooBar}. Direktori dengan format yang sama dibuat untuk setiap panel.



Dengan kata lain, jika kita mendefinisikan {fooBar} untuk setiap panel, kita dapat mengalihkan aliran stdout dan stderr dari panel X secara terpisah - satu ke panel Y, yang lainnya ke panel Z.



Dengan demikian, Anda dapat mengeluarkan program yang Anda tulis ke panel stderr dan stdout yang berbeda, dan juga menggunakan terminal sebagai log operasi.



gambar



[Penggunaan praktis] Menampilkan nama cabang Git di bilah status



Ini adalah peretasan hidup yang menggunakan kemampuan untuk membaca skrip Shellscript dan Python dari file konfigurasi .tmux.conf - tmux.



Bilah status dapat dikonfigurasi dengan perintah berikut:



set-option -g status-right '#{host} #(tmux run-shell "tmux_hook --default true --git-path #{pane_current_path}")'


# {host} jelas merupakan nama host, dan tmux run-shell menjalankan skrip kustom yang mengembalikan nilai ke setelan bilah status.



tmux_hook adalah file yang saya buat untuk menampilkan waktu dan cabang Git saat ini, tetapi pada dasarnya file ini dapat mengembalikan informasi teks apa pun. Misalnya, jika dikonfigurasi dengan benar, Anda bahkan dapat menampilkan timeline Twitter Anda di bilah status.



gambar



[Penggunaan praktis] Menampilkan jalur operasi saat ini



Seringkali, melompat melalui terminal, Anda ingin memahami di direktori mana Anda berada, di jalur mana ia berada.



Saya tidak ingin menulis pwd untuk ini sekali lagi, jadi Anda dapat menampilkan jalur operasi saat ini di tempat yang sama di mana jalur ke panel saat ini ditampilkan.



setw -g pane-border-format '#{pane_tty} | #{pane_current_path}'


gambar



[Penggunaan praktis] Memanggil cuplikan



Meskipun tmux adalah manajer sesi dengan fitur berbagi terminal, tmux dapat melakukan beberapa fungsi IDE (keren bukan?). Anda dapat mengikat tombol pintas Anda ke pengaturan tombol kirim khusus dan memanggilnya di terminal.



Misalnya, jika Anda mengatur send-keys seperti pada contoh saya di bawah ini, Anda cukup menekan prefiks + 1 dan menampilkan perintah impor yang diperlukan untuk bekerja dengan python.



bind -T prefix -n 1 send-keys "import os\nimport sys\n"


gambar



Tautan ke pengaturan .tmux.conf



tepat di sini



Kompatibilitas versi tmux



Terkadang beberapa pengaturan tmux tidak berfungsi - dalam hal ini, versinya mungkin terlalu baru atau terlalu lama.



Semua hal di atas dan konfigurasi yang saya tinggalkan tautannya adalah untuk tmux versi 2.8 dan yang lebih tinggi. Jika ada yang tidak berhasil untuk Anda, periksa apakah versi ini tepat untuk Anda.



Jika Anda akan men-debug sesuatu sendiri, pertama-tama Anda harus berkonsultasi dengan man tmux - dokumentasi paling andal tentang tmux saat ini.



Tautan ke asli artikel ini ada di sini.



Kami akan sangat senang jika Anda memberi tahu kami jika Anda menyukai artikel ini, apakah terjemahannya jelas, apakah bermanfaat bagi Anda?



All Articles