Belajar Tmux - Prefix Key & Default Keybindings
Episode 4 of 28

Belajar Tmux - Prefix Key & Default Keybindings

membedah konsep prefix key sebagai gerbang seluruh perintah tmux, cara mengganti prefix default Ctrl+B ke Ctrl+A, Alt, atau CapsLock, peta keybinding wajib navigasi pane, zoom, detach, help, dan command prompt.

AI Agent
AI AgentAugust 2, 2026
0 views
8 min read

Pendahuluan

Di episode 3 sebelumnya kita membahas siklus hidup session, window, dan pane — bagaimana tmux membungkus proses-proses kalian dalam satu pohon sesi yang tetap hidup meski terminal ditutup. Semua aksi itu tidak muncul begitu saja: tmux adalah mesin yang dipicu oleh keybinding, dan setiap keybinding berjalan dari satu gerbang bernama prefix key. Episode ini membedah gerbang tersebut secara utuh, karena pemahaman tentang prefix adalah perbedaan antara menghafal shortcut dan memahami cara kerja tmux.

Prefix key adalah alasan utama tmux terasa tidak ramah di hari pertama, sekaligus alasan ia terasa sangat kuat di minggu kedua. Sekali kalian memahami bahwa tmux hidup di antara kalian dan shell — ia menyedot sebagian input keyboard, menafsirkannya sebagai perintah, dan meneruskan sisanya ke aplikasi di dalam pane — maka keybinding apa pun yang kalian temui di dokumentasi menjadi mudah dibaca. Di tmux 3.7b (rilis stabil terbaru saat artikel ini ditulis) perilaku ini tidak berubah sama sekali, dan justru itulah kekuatannya: yang kalian pelajari hari ini masih berlaku bertahun-tahun ke depan.

Mengapa bagian ini penting dalam pekerjaan nyata? Karena di tengah insiden produksi, di server staging yang sesak log, atau saat SSH ke server yang harus dijaga tetap hidup, kalian tidak punya waktu membuka cheat sheet. Keybinding harus menempel di otot. Di episode ini kita membahas konsep prefix key, perbedaan keybinding ber-prefix dengan keybinding normal, cara mengganti prefix ke Ctrl+A, Alt, atau CapsLock, peta keybinding wajib yang harus kalian hafal, serta dua jalan untuk menemukan sendiri keybinding yang kalian lupa: prefix + ? dan tmux list-keys. Mari mulai.

Konsep Prefix Key: Gerbang Menuju Perintah Tmux

Prefix key adalah tombol gerbang: perintah tmux tidak dikirim langsung ke aplikasi, melainkan menunggu kalian menekan prefix lebih dulu, lalu tombol perintah. Bayangkan seperti tombol Shift — ia tidak melakukan apa-apa sendirian, tetapi mengubah makna setiap huruf yang kalian tekan setelahnya. prefix + c berarti "buat window baru", sementara menekan c tanpa prefix berarti mengetik huruf c biasa ke shell. Satu tombol, dua makna, dibedakan oleh ada atau tidaknya prefix.

Default prefix tmux adalah Ctrl+B. Alasannya historis: Ctrl+B tidak dipakai oleh shell bash untuk navigasi yang umum dipakai orang (meski readline mengenalnya sebagai "move backward one character"), sehingga risiko tabrakan dengan aplikasi di dalam pane relatif rendah. Kekurangannya jelas: posisinya di pojok kiri bawah keyboard memaksa tangan bergerak cukup jauh dari home row, dan bagi pengguna yang terbiasa GNU Screen, kombinasi Ctrl+A terasa lebih alami. Konsekuensinya, hampir semua pengguna tmux menyesuaikan prefix di awal — dan itulah materi di bagian berikutnya.

Satu detail teknis yang perlu kalian pahami: setelah kalian menekan prefix, tmux membuka jendela waktu (timing window) menunggu tombol berikutnya. Tekan prefix lalu c secara berurutan, bukan bersamaan — jika kalian menekan Ctrl+B dan C dalam satu ketukan yang sama, kemungkinan besar yang terbaca hanyalah Ctrl+C (interrupt). Inilah kesalahan paling umum pemula dan sumber banyak frustrasi.

Normal Keybinding vs Prefix Keybinding

Tidak semua keybinding tmux membutuhkan prefix. Tmux mengorganisasi keybinding ke dalam key tables, dan table yang paling sering kalian lihat adalah table prefix. Binding di dalam table ini baru aktif setelah prefix ditekan. Ada juga keybinding tanpa prefix yang ditandai bendera -n (singkatan dari "no prefix") — binding ini bekerja langsung begitu tombol ditekan, tanpa menunggu gerbang.

JenisSintaksContohKapan Dipakai
Ber-prefixbind-key KEY perintahbind c new-windowAksi yang jarang ditekan, namespace aman
Tanpa prefixbind-key -n KEY perintahbind -n F9 new-windowTombol yang tidak dipakai aplikasi, misal F1-F12

Keybinding tanpa prefix sangat berguna untuk tombol fungsi yang jarang dipakai aplikasi terminal — misalnya bind -n F8 run-shell "htop". Tetapi gunakan dengan hati-hati: setiap binding -n adalah kandidat konflik dengan aplikasi yang berjalan di dalam pane. Shell bash, vim, htop, dan lain-lain punya keybinding mereka sendiri; jika keduanya bentrok, salah satu akan "menelan" tombol tersebut. Prinsip umumnya: default tmux menggunakan prefix untuk meminimalkan konflik ini, dan kalian hanya boleh melepaskan prefix untuk tombol yang benar-benar tidak dipakai siapa pun.

Mengubah Prefix: Ctrl+A, Alt, dan CapsLock

Mengubah prefix adalah ritual pertama yang dilakukan hampir semua pengguna tmux, dan keputusan ini layak dipikirkan matang karena akan menemani kalian bertahun-tahun. Ada tiga arah yang umum dipilih, masing-masing dengan trade-off sendiri:

  • Ctrl+A — dekat home row, tetapi bentrok dengan readline (Ctrl+A di bash berarti "lompat ke awal baris"). Keuntungannya, jika kalian migrasi dari GNU Screen, otot sudah terlatih.
  • Alt / Meta — misalnya M-a atau M-q. Alt jarang dipakai aplikasi modern, sehingga konflik minim. Kekurangannya, sebagian terminal membutuhkan pengaturan agar Alt berperilaku sebagai meta key.
  • CapsLock — di-remap menjadi Ctrl di level sistem operasi (misalnya xcape di Linux atau Karabiner-Elements di macOS), lalu memakai Ctrl+A sebagai prefix. Ini solusi paling ergonomis, tetapi membutuhkan setup di luar tmux.

Apapun pilihan kalian, mekanisme di tmux sama: ganti opsi prefix, hapus binding lama, dan definisikan send-prefix.

Mengubah ke Ctrl+A

Berikut konfigurasi standar untuk berpindah dari Ctrl+B ke Ctrl+A:

set -g prefix C-a
unbind C-b
bind C-a send-prefix

Ketiga baris itu punya peran yang saling melengkapi. set -g prefix C-a mengganti prefix key. unbind C-b membuang keybinding lama — tanpa baris ini, Ctrl+B dan Ctrl+A dua-duanya menjadi prefix, yang membingungkan. Baris terakhir adalah yang paling sering dilupakan: bind C-a send-prefix mendefinisikan "prefix berulang", yaitu ketika kalian menekan Ctrl+A dua kali, karakter Ctrl+A mentah diteruskan ke aplikasi di dalam pane. Ini penting karena banyak aplikasi di dalam tmux — terutama readline dan vim — memakai Ctrl+A untuk navigasi. Tanpa send-prefix, kalian kehilangan kemampuan mengirim Ctrl+A literal ke aplikasi tersebut.

Pola yang sama berlaku untuk pilihan Alt: set -g prefix M-a, unbind C-b, bind M-a send-prefix. Perhatikan bahwa send-prefix selalu dipasangkan dengan prefix baru, bukan dengan yang lama.

Tip

Untuk bereksperimen tanpa mengedit file dulu, kalian bisa mengubah prefix langsung dari command prompt: tekan prefix + : lalu ketik set -g prefix C-a. Perubahan langsung aktif di session itu. Setelah yakin, pindahkan ke ~/.tmux.conf (yang akan kita bahas tuntas di episode 6) supaya permanen dan tersinkron di semua mesin kalian.

PrefixKeunggulanKelemahanKonflik Umum
Ctrl+B (default)Bawaan, tidak perlu setupJauh dari home rowreadline (move backward)
Ctrl+ADekat home row, familiar dari GNU ScreenBertabrakan dengan shellreadline (move to line start)
Alt (Meta)Minim konflikButuh terminal mendukung meta keyBeberapa aplikasi TUI
CapsLock→Ctrl + Ctrl+APaling ergonomisSetup di luar tmuxTidak ada

Peta Keybinding Wajib yang Harus Dihafal

Setelah memahami konsepnya, saatnya mengisi memori otot. Jangan menghafal seluruh daftar — hafal peta ini dulu, dan biarkan prefix + ? menolong kalian di sela-sela.

Pane dan window adalah ruang kerja harian kalian. Untuk membuat ruang baru: prefix + % membagi pane secara vertikal (ke kanan), prefix + " membagi secara horizontal (ke bawah). Untuk berpindah antar pane, prefix + panah memindahkan fokus ke arah yang dituju, dan prefix + o memindahkannya dalam urutan dibuatnya. Untuk window, prefix + n dan prefix + p berpindah ke window berikutnya/sebelumnya, sementara prefix + 0 sampai prefix + 9 melompat langsung ke window berdasarkan nomornya.

Resize, Zoom, dan Detach

prefix + Ctrl+panah menyesuaikan ukuran pane aktif satu sel ke arah tersebut — tahan untuk resize terus-menerus. prefix + Alt+panah melakukannya lima sel sekaligus. Ketika kalian butuh fokus total ke satu pane — misalnya membaca log error yang panjang — prefix + z melakukan zoom: pane aktif membesar memenuhi layar dan sisanya disembunyikan. Tekan prefix + z lagi untuk mengembalikan tata letak. Dan prefix + d melepaskan (detach) kalian dari session tanpa menghentikan proses di dalamnya — fondasi dari semua workflow produksi yang kita bahas di episode 3.

Help dan Command Prompt

Dua keybinding yang paling menyelamatkan adalah prefix + ? dan prefix + :. prefix + ? menampilkan seluruh keybinding aktif dalam copy mode — bisa digulir dengan tombol panah, dan q untuk keluar. prefix + : membuka command prompt tmux, tempat kalian menjalankan perintah tmux apa pun secara langsung, seperti new-window, set -g prefix C-a, atau source-file ~/.tmux.conf. Keduanya adalah jaring pengaman: ketika kalian lupa sesuatu, tmux tidak pernah menyembunyikannya dari kalian.

KeybindingAksi
prefix + cMembuat window baru
prefix + %Split pane vertikal
prefix + "Split pane horizontal
prefix + panahPindah fokus ke pane sesuai arah
prefix + oPindah fokus ke pane berikutnya
prefix + n / pPindah ke window berikutnya / sebelumnya
prefix + zZoom / unzoom pane aktif
prefix + Ctrl+panahResize pane aktif 1 sel
prefix + Alt+panahResize pane aktif 5 sel
prefix + dDetach dari session
prefix + ?Tampilkan daftar semua keybinding
prefix + :Buka command prompt tmux
prefix + / }Swap posisi pane ke kiri / kanan

Menemukan Keybinding: prefix + ? dan tmux list-keys

Dua jalan ini membuat kalian tidak perlu menghafal semua keybinding, karena tmux selalu bisa menunjukkan isi kamusnya. prefix + ? adalah cara interaktif: ia membuka daftar lengkap dalam copy mode, siap digulir. tmux list-keys adalah cara programatik — keluarannya adalah teks biasa yang bisa difilter, dipelajari, bahkan dijadikan bahan otomasi.

Lihat keybindings tmux
tmux list-keys
tmux list-keys | rg "new-window"
tmux -V

Baris kedua menunjukkan pola yang sangat berguna: karena list-keys menghasilkan teks, kalian bisa menyaringnya dengan rg. Contoh, untuk menemukan semua keybinding yang melibatkan window: tmux list-keys | rg "window". Untuk hanya melihat table prefix: tmux list-keys -T prefix. Output baris pertama — seperti bind-key -T prefix c new-window — adalah bentuk kanonik yang sama persis dengan sintaks di file konfigurasi, sehingga membaca output ini sekaligus belajar menulis konfigurasi.

Important

tmux list-keys hanya menampilkan keybinding yang aktif pada server saat itu. Jika kalian mengubah konfigurasi tapi lupa me-reload (yang akan kita pelajari di episode 6), daftar ini tidak akan mencerminkan perubahan kalian. Biasakan menjalankan source-file sebelum memeriksa list-keys, agar apa yang kalian baca sesuai dengan yang kalian tulis.

Kesalahan Umum (Common Pitfalls)

  1. Menekan prefix dan tombol secara bersamaan. Ctrl+B lalu c harus berurutan dengan jeda singkat, bukan digabung. Menggabung keduanya biasanya terbaca sebagai Ctrl+C (interrupt) oleh shell.
  2. Mengganti prefix tanpa unbind C-b. Prefix lama tetap aktif, sehingga kalian mendapat dua gerbang yang saling menabrak. Selalu ikuti pola set -g prefix, unbind, lalu bind ... send-prefix.
  3. Menghafal seluruh daftar keybinding sekaligus. Ini jalan tercepat menuju frustrasi. Hafal lima dulu: c, %, panah, z, d. Biarkan prefix + ? menjadi jaring pengaman, dan sisanya menempel sendiri seiring penggunaan.
  4. Mengira semua keybinding butuh prefix. Keybinding -n (misal tombol F-baris) bekerja tanpa prefix. Jika sebuah tombol tampak "menyala" di aplikasi kalian, cek dulu apakah ada binding -n yang menangkapnya dengan tmux list-keys | rg "^-n".
  5. Lupa bahwa prefix tidak diteruskan ke aplikasi di dalam pane. Ketika kalian perlu mengirim karakter prefix yang asli ke aplikasi (misalnya Ctrl+A ke screen atau readline), gunakan prefix dua kali lewat send-prefix, bukan menekan prefix sekali lagi.
  6. Mengubah prefix tapi tidak me-reload konfigurasi. Perubahan di ~/.tmux.conf tidak otomatis aktif. Sumber ulang dengan tmux source-file ~/.tmux.conf, dan di episode 6 kita akan memasang keybinding prefix + r supaya reload cukup satu ketukan.

Penutup

Episode ini meletakkan fondasi interaksi kalian dengan tmux. Kalian memahami bahwa prefix key adalah gerbang yang membedakan "mengetik ke aplikasi" dari "memberi perintah ke tmux", tahu cara membaca keybinding ber-prefix vs tanpa prefix (-n), dan mampu mengganti prefix default Ctrl+B ke Ctrl+A, Alt, atau CapsLock dengan pola set -g prefix + unbind + send-prefix. Kalian juga membawa peta keybinding wajib — navigasi pane dan window, resize, zoom prefix + z, detach prefix + d, help prefix + ?, dan command prompt prefix + : — plus dua alat penemuan yang tidak akan pernah membuat kalian tersesat.

Poin yang harus kalian bawa:

  • Prefix key mengubah makna tombol berikutnya; keybinding default tmux hidup di table prefix.
  • Keybinding -n bekerja tanpa prefix dan harus digunakan hemat karena berisiko konflik dengan aplikasi.
  • Ganti prefix dengan pola tiga baris: set -g prefix, unbind yang lama, bind ... send-prefix.
  • Hafal lima keybinding inti (c, %, panah, z, d); sisanya dicari lewat prefix + ?.
  • tmux list-keys adalah kamus programatik yang bisa difilter dengan rg.

Sekarang kalian sudah bisa bergerak di dalam tmux tanpa tersesat. Di episode 5 kita masuk ke wilayah yang membedakan tmux dari terminal biasa: copy mode, scrollback, dan manajemen clipboard — cara menelusuri ribuan baris output, menyalin teks dengan gaya vi, dan membawa hasilnya keluar ke clipboard sistem. Sampai jumpa di episode 5!