Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●
Prakata
Banyak sekali hal-hal terkait Tmux yang terlupakan karena tidak pernah saya catat. Saat diperlukan, saya harus Googling dan mencari kembali. Sangat membuang-buang waktu development.
Karena alasan tersebut, saya putuskan untuk mencatat beberapa hal terkait Tmux. Mungkin, teman-teman juga dapat memanfaatkannya.
Morfologi
Ibarat sebuah pohon, session adalah pokok batangnya, kemudian cabangnya adalah window (tab) yang memiliki daun berupa pane.
Sessions
- BLOG: 2 windows (attached)
├─> 0: CANVAS* (1 panes)
└─> + 1: SERVER- (2 panes)
- DOJO: 2 windows
├─> 0: CANVAS* (1 panes)
└─> + 1: RUN- (2 panes)
- PROJEKT: 2 windows
├─> 0: CANVAS* (1 panes)
└─> + 1: SERVER- (2 panes)
Dapat terlihat, kalau saya memiliki 3 buah session.
- BLOG:, adalah nama dari session.
Yang memiliki (attached) artinya sedang aktif terbuka.
0: CANVAS, adalah nama dari window (bisa juga kita anggap sebagai tab).
Window tersebut dapat pula kita berikan nama. (1 panes) artinya dalam tab tersebut sedang terbuka 1 buah pane.
Tanda * adalah indikator window yang sedang aktif terbuka (selected window).
(1 panes), adalah jumlah dari pane.
Windows (Tabs)
+-------------------+ +-------------------+ +-------------------+
|$ | |$ | |$ |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
|-------------------| |-------------------| |-------------------|
|0 0:AA* | |0 0:AA 1:BB* | |0 0:AA 1:BB 3:CC* |
+-------------------+ +-------------------+ +-------------------+
1 window 2 windows 3 windows
Panes
+-------------------+ +-------------------+ +-------------------+
|$ | |$ |$ | |$ |$ |
| | | | | | | |
| | | | | | |---------|
| | | | | | |$ |
| | | | | | | |
|-------------------| |-------------------| |-------------------|
|0 0:AA* | |0 0:AA* 1:BB | |0 0:AA* 1:BB 3:CC |
+-------------------+ +-------------------+ +-------------------+
1 pane 2 panes 3 panes
Jadi secara garis besar dapat diurutkan seperti ini.
server > sessions > windows > panes
server adalah bagian paling luar dari session, tempat dimana session berada.
Mappings (Keyboard Shortcut)
Tmux prefix
Default dari Tmux prefix adalah,
Ctrl-b
Pada catatan ini, apabila di awali dengan kombinasi keyboard tersebut, artinya adalah Prefix.
Melihat daftar keybindings
Tmux memmiliki banyak sekali keybindings, untuk melihat daftar tersebut,
Ctrl-b ?
Untuk keluar dari list keybindings,
q
Masuk ke command mode
Untuk masuk ke Tmux command mode,
Ctrl-b :
Kalau berhasil, Tmux akan menampilkan command mode pada Tmux statusbar seperti ini,
:
Tinggal kita masukkan command yang ingin di-input-kan.
Keluar/Close/Detach dari session yang sedang aktif
Untuk keluar/detach (melepaskan) session Tmux yang sedang aktif,
Ctrl-b d
Tmux akan langsung keluar dan kembali ke prompt Terminal.
Tmux session tersebut tidak akan hilang, tapi masih berjalan di background process.
Untuk mengakses Tmux session yang kita detach tersebut, gunakan cara ini
Memberikan/Mengganti nama session
Secara default, nama session akan otomatis digenerate secara incremental dalam bentuk integer mulai dari 0.
Kita, dapat mengganti nama session dengan cara,
Ctrl-b $
Pada command mode, akan tertulis seperti ini,
:(rename-session) 0
Ganti 0 dengan nama yang kalian inginkan.
Membuat window (tab) baru
Secara default, saat session baru dibuat, hanya akan ada 1 window (tab) yang biasanya bernama 0:zsh.
Kita dapat membuat/manambah window baru dengan cara,
Ctrl-b c
Window (tab) baru akan secara otomatis ditambahkan ke bagian akhir dari windows stack.
Memberikan/Mengganti nama window (tab)
Secara default, nama window akan otomatis diambil dari nama shell yang digunakan.
Kita, dapat mengganti nama window dengan cara,
Ctrl-b ,
Pada command mode, akan tertulis seperti ini,
:(rename-window) zsh
Ganti zsh dengan nama yang kalian inginkan.
Command Mode
Membuat session baru dari dalam Tmux
Untuk membuat session baru dari dalam Tmux,
:new-session -s <nama_session>
Membuat session baru dengan working directory dari dalam Tmux
Kalau kita sudah berada di dalam Tmux, namun ingin membuat session lain (session baru yang lain) sambil mendefinisikan workding directory-nya,
:new-session -s <nama_session> -c /lokasi/working/directory/baru
Mengganti working directory pada session yang sudah ada dari dalam Tmux
Kalau kita sudah terlanjur membuat session baru, namun ingin menganti working directory-nya,
:attach-session -t . -c /lokasi/working/directory/baru
-t . adalah session yang saat ini sedang digunakan.
Atau bisa juga menggunakan tmux variable untuk cwd, yaitu pane_current_path
.
Masuk dulu ke direktori yang ingin dijadikan cwd. Lalu jalankan perintah di bawah.
:attach-session -t . -c "#{pane_current_path}"
Command Line Terminal
Membuat session baru dari Terminal
Untuk membuat session baru dari Terminal,
$ tmux new-session -s <nama_session>
-s adalah flag option untuk name the session.
Membuat session baru dengan working directory dari Terminal
Tmux session yang baru dibuat, akan dimulai dari WD (Working Directory) dimana session tersebut dibuat.
Jadi, kalau kita buat Tmux session pada direktori ~/Desktop, maka setiap WD dari Tmux window pane yang ada di dalam Tmux session tersebut akan dimulai dari sana.
Namun, kita dapat membuat session baru, sambil mendefinisikan lokasi dari WD yang akan digunakan.
$ tmux new-session -s <nama_session> -c /lokasi/working/directory/baru
-c adalah specify working directory for the session.
Attach/Memasang kembali session yang sudah di-detach dari Terminal
Apabila kita memiliki session yang masih aktif di background karena kita melakukan proses detach.
Kita dapat masuk kembali, ke dalam session tersebut dengan cara,
$ tmux attach-session -t <nama_session>
Kita perlu mengetahui nama_session dari session yang akan kita attach.
Sedang dalam proses penulisan...