menelusuri kembali output yang sudah lewat layar dengan scroll mode, mencari teks di buffer panjang, mengedit scrollback di editor favorit, serta mengatur clipboard lintas OS lewat copy_command.

Salah satu keluhan paling umum terhadap terminal polos: output yang sudah melewati layar hilang tanpa jejak. Build gagal dengan error di atas layar yang sudah tergulung, log crash memuat ribuan baris, dan kalian hanya bisa melihat sepuluh baris terakhir. Di episode 5 kemarin kita belajar mengatur ruang; di episode ini kita belajar mengatur waktu — kembali menelusuri sejarah setiap pane lewat scrollback, mencari satu pola di tengah ribuan baris, bahkan membuka isi scrollback langsung di editor.
Scrollback adalah "ingatan" Zellij. Setiap pane menyimpan sejumlah baris output di buffer (default 10000 baris per pane, bisa diubah lewat opsi scroll_buffer_size). Yang terlihat di layar hanyalah jendela kecil dari buffer itu. Scroll mode memberi kalian kontrol penuh atas jendela tersebut: scroll halus per baris, melompat per halaman, melesat ke atas atau ke bawah, mencari teks dengan berbagai opsi pencarian, hingga mengedit scrollback di $EDITOR untuk menganalisis panjang.
Mengapa keterampilan ini penting? Dalam debugging, konteks adalah segalanya. Error yang membuat kalian bingung sering kali sudah muncul puluhan baris di atas — dan mencari dengan mata adalah cara paling lambat. Kuasai scroll, search, dan copy mode, dan kalian mengubah terminal dari alat mengetik menjadi alat menyelidik. Di episode ini kita juga menutup mata rantai terakhir workflow: mengeluarkan teks dari Zellij ke clipboard atau file, lintas sistem operasi.
Selain membaca, ada satu lagi yang episode ini tuntaskan: mengeluarkan hasil. Menyalin error ke chat tim, menyimpan log untuk dilampirkan ke ticket, mengirim potongan output ke dokumentasi — semua itu butuh alur keluar yang andal. Zellij menyediakan seleksi mouse yang otomatis menyalin, plus opsi copy_command yang membuat clipboard bekerja di platform apa pun, dari macOS hingga server Linux tanpa GUI. Setelah episode ini, tidak ada lagi alasan untuk mengetik ulang output yang sudah tampil di layar.
Scroll mode diakses dengan Ctrl+s. Sama seperti mode lain, setelah masuk, status-bar berubah menampilkan semua aksi yang tersedia. Kalian bisa langsung mulai menavigasi dengan tombol di bawah layar — tidak perlu menghafal, hint selalu ada.
| Keybind | Aksi |
|---|---|
Ctrl+s | Masuk Scroll mode pada pane fokus |
Ctrl+s (lagi) / Esc / Enter | Kembali ke Normal mode |
Ctrl+c | Langsung lompat ke baris paling bawah dan kembali Normal |
Penting untuk dipahami: scrollback bersifat per pane. Scroll mode bekerja pada pane fokus saat itu, bukan seluruh tab. Ini keputusan desain yang tepat — kalian biasanya ingin menelusuri output dari satu proses, bukan campuran banyak proses. Pindah ke pane lain, masuk Scroll mode lagi, dan kalian menelusuri buffer pane itu.
Saat berada di Scroll mode, posisi kalian ditandai. Jika kalian menekan tombol navigasi dan tidak terjadi apa-apa, kemungkinan besar kalian sudah berada di ujung buffer yang sama — tidak ada yang salah, hanya tidak ada lagi yang bisa discroll. Ctrl+c selalu mengembalikan kalian ke bagian paling bawah dengan sekali ketukan, sekaligus keluar dari mode.
Scrollback juga bisa dibersihkan. Di banyak shell, clear hanya membersihkan layar — baris lama tetap hidup di buffer. Zellij menyediakan zellij action clear yang menghapus seluruh buffer pane fokus (atau pane yang ditunjuk dengan --pane-id). Gunakan ketika kalian mulai eksperimen panjang yang baru dan ingin memulai dengan konteks yang bersih, tanpa menutup pane yang masih berguna.
Navigasi scrollback mengikuti pola yang familier dari editor Vim — ini bukan kebetulan. Zellij mengadopsi idiom yang sudah dikuasai banyak developer agar tidak perlu belajar dari nol.
| Keybind | Aksi |
|---|---|
j / ↓ | Scroll turun satu baris |
k / ↑ | Scroll naik satu baris |
Ctrl+f / PageDown | Scroll turun satu halaman |
Ctrl+b / PageUp | Scroll naik satu halaman |
d | Scroll turun setengah halaman |
u | Scroll naik setengah halaman |
g | Lompat ke baris paling atas scrollback |
G | Lompat ke baris paling bawah |
Bedakan dua kelompok tombol ini dengan jelas. j/k adalah gerakan mikro — satu baris per tekanan, untuk membaca perlahan atau menuju baris tertentu. Ctrl+f/Ctrl+b adalah gerakan makro — satu layar penuh per tekanan, untuk menyusuri ribuan baris log dengan cepat. Antara keduanya ada d/u untuk setengah halaman, kompromi yang pas untuk file yang panjangnya menengah.
1. Ctrl+s masuk scroll mode
2. g lompat ke awal buffer
3. Ctrl+f telusuri maju cepat, satu layar
4. k mundur halus saat mendekati target
5. Ctrl+c kembali ke bawah dan keluar modeKombinasi g lalu Ctrl+f berulang adalah cara tercepat menembus log build yang panjangnya puluhan ribu baris. Saat mendekati area yang dicari, perlambat dengan k. Kebiasaan kecil ini terasa lambat di awal, tetapi setelah sehari bekerja, tangan kalian bergerak otomatis.
Ada satu cara lagi yang sering diabaikan: mouse. Dengan mouse_mode aktif (default), kalian bisa menggulir scrollback langsung dengan roda mouse di dalam pane — Zellij menangani scrolling di belakang layar tanpa mengalihkan mode. Dan ada detail menarik: sambil menahan Ctrl, roda mouse me-resize pane (diatur opsi mouse_scroll_resize, aktif secara default). Kombinasi ini membuat sebagian orang sama sekali tidak menyentuh Ctrl+s untuk pekerjaan ringan, dan menyimpan Scroll mode untuk navigasi yang benar-benar serius.
Scroll manual tetap kalah melawan log yang panjang. Di sinilah Search mode berperan. Dari Scroll mode, tekan s — status-bar berubah menjadi kotak input pencarian. Ketik pola, tekan Enter, dan Zellij melompat ke baris yang cocok sambil menyorot semua kemunculannya.
| Keybind | Aksi |
|---|---|
Ctrl+s lalu s | Masuk input pencarian |
Enter | Konfirmasi pencarian, masuk Search mode |
n | Lompat ke kemunculan berikutnya |
p | Lompat ke kemunculan sebelumnya |
c | Toggle case sensitivity (case-sensitive / insensitive) |
w | Toggle wrap around (melanjutkan pencarian dari awal) |
o | Toggle whole word (hanya kata utuh) |
Esc | Keluar Search mode kembali ke Scroll mode |
Tiga toggle adalah kekuatan tersembunyi pencarian Zellij. c (case) menentukan apakah error sama dengan Error. w (wrap) menentukan apakah pencarian berlanjut dari awal buffer ketika mencapai akhir — berguna jika kemunculan terakhir ada di atas. o (whole word) mencegah err ikut mencocokkan kata seperti errant. Toggle aktif/nonaktif tampil di status-bar, jadi kalian selalu tahu kondisi pencarian saat ini.
Detail alur inputnya: ketika kalian menekan s, kalian masuk mode input pencarian (EnterSearch). Esc atau Ctrl+c membatalkan dan kembali ke Scroll mode; Enter mengonfirmasi dan membawa kalian ke Search mode dengan semua kemunculan disorot. Pisahkan dua langkah ini dalam benak kalian: mengetik kata kunci adalah langkah pertama, menekan Enter adalah langkah kedua yang "mengunci" pencarian. Setelah itu n dan p menjadi tombol utama — dan Esc mengembalikan kalian ke Scroll mode tanpa menghapus hasil pencarian.
Tip
Pencarian Zellij bersifat live terhadap semua baris buffer, tidak peduli seberapa jauh baris itu dari layar. Untuk menemukan baris waktu pertama kali error muncul, jangan scroll — langsung Ctrl+s lalu s, ketik error, dan tekan n sampai kalian melihat kemunculan paling atas yang masuk akal. Ini mengubah debugging dari "membaca maju" menjadi "lompat cerdas".
Satu catatan: pencarian adalah string literal biasa, bukan regex. Jika kalian butuh pola kompleks, salin scrollback ke editor dan gunakan regex editor — yang membawa kita ke bagian berikutnya.
Ada kalanya scrollback terlalu rumit untuk dianalisis di layar: ingin melakukan regex, ingin menyimpan hasil sebagai file, atau ingin berbagi log ke tim. Dari Scroll mode, tekan e — Zellij membuka seluruh isi scrollback pane fokus di editor kalian ($EDITOR atau $VISUAL, dapat di-override lewat opsi scrollback_editor).
export EDITOR=nvim
zellij action edit-scrollbackBegitu editor terbuka, scrollback diperlakukan sebagai file teks biasa: kalian bisa mengedit, menyimpan, menulis ke file lain dengan :w /tmp/log.txt, atau menyalin bagian yang diinginkan. Fitur ini lebih berguna daripada kedengarannya — alih-alih menyalin seratus baris manual, kalian dapat memfilter dengan grep atau regex di editor dan hanya mempertahankan baris yang relevan.
Ukuran buffer juga berperan di sini: e membuka seluruh scrollback sesuai scroll_buffer_size. Jika kalian menaikkan opsi itu menjadi ratusan ribu baris, membuka editor bisa memakan waktu dan memori. Zellij memberi jalan keluar: zellij action dump-screen --full menyalin viewport atau seluruh scrollback ke stdout atau file (--path), yang bisa kalian proses tanpa editor interaktif sama sekali — misalnya dirangkai dengan grep atau disimpan sebagai artefak. Fleksibilitas ini penting ketika buffer yang kalian hadapi sangat besar.
Important
Pastikan $EDITOR atau $VISUAL sudah diset di environment kalian sebelum mengandalkan e. Jika tidak, Zellij gagal membuka editor dan kalian mendapat pesan error. Set sekali di shell config (export EDITOR=nvim misalnya), dan semua hal di terminal — termasuk Zellij — memakai editor yang sama.
Mengapa fitur ini penting secara praktis? Bayangkan insiden produksi: log lengkap ada di scrollback, kalian perlu menganalisis dan melaporkan. Dengan e, seluruh konteks tersedia sebagai file — simpan, lampirkan ke ticket, atau proses dengan skrip. Ini jembatan antara terminal yang serba cepat dan dokumentasi yang serba rapi.
Bagian terakhir dari episode ini adalah mengeluarkan teks dari Zellij. Secara default (copy_on_select), cukup blok teks dengan mouse dan seleksi otomatis tersalin ke clipboard — disebut copy-on-select. Kalian juga bisa memindahkan fokus dan menggulir dengan mouse untuk memperluas seleksi. Ini cara tercepat untuk menyalin potongan error atau perintah.
Jika kalian menonaktifkan copy_on_select, ada keybind manual Alt+c yang bisa diaktifkan untuk menyalin seleksi. Dan yang tidak kalah penting: ke mana teks itu disalin? Zellij mengirimnya lewat OSC 52 — protokol terminal yang mengarahkan clipboard terminal emulator. Namun tidak semua terminal dan environment mendukung OSC 52 (terutama SSH ke server tertentu). Solusinya: opsi copy_command, yang menjalankan sebuah perintah dan menyalurkan teks ke stdin-nya.
copy_command "wl-copy"Karena ketiga perintah di atas spesifik platform, inilah contoh sempurna untuk pola code-group:
pbcopyPilih satu sesuai sistem kalian dan letakkan sebagai satu baris copy_command "..." di config.kdl. Paste tetap memakai paste terminal kalian (Ctrl+Shift+v di sebagian besar terminal, atau klik tengah untuk primary selection di Linux). Perlu dicatat: pengaturan lengkap config.kdl akan dibahas di episode 8 — untuk sekarang, cukup tempel opsi ini jika kalian mengalami masalah salin-tempel.
Ada satu opsi lagi yang layak dikenal: copy_clipboard. Secara default Zellij menyalin ke clipboard sistem (system), tetapi di X11/Wayland kalian bisa memilih primary — buffer klik-tengah yang ringan untuk paste cepat tanpa menyentuh kombinasi tombol. Satu catatan penting dari komentar default config: opsi ini tidak berlaku ketika copy_command dipakai, karena perintah tersebut mengambil alih seluruh alur clipboard. Pahami dua lapis ini — OSC 52/terminal, lalu copy_command — dan masalah salin-tempel hampir selalu terpecahkan.
Warning
Perbedaan sistem clipboard: di X11, xclip -selection clipboard menyalin ke clipboard sistem, sementara xclip tanpa argumen menyalin ke primary selection (buffer klik-tengah). Wayland memakai wl-copy; macOS memakai pbcopy. Memilih copy_command yang salah membuat teks tampak "tidak tersalin" padahal ia tersalin di tempat yang tidak kalian periksa. Uji dulu perintahnya di shell biasa.
Terakhir, bahas paste. Zellij tidak memiliki keybind paste bawaan karena ia mendelegasikan paste ke terminal emulator: Ctrl+Shift+v di sebagian besar terminal, atau klik tengah untuk primary selection di X11. Untuk automasi dari luar sesi, ada zellij action paste "teks" yang menulis teks ke pane dengan bracketed paste mode — cara yang aman karena teks tidak diinterpretasikan sebagai keypress. Dan bagi yang mematikan copy-on-select: aktifkan baris bind "Alt c" { Copy; } di mode scroll config default, supaya seleksi disalin secara eksplisit dan clipboard tidak tertimpa oleh seleksi yang tidak disengaja.
Ctrl+s men-scroll pane fokus, bukan seluruh tab. Output proses lain di pane berbeda tidak ikut — pindah pane dulu sebelum menelusuri.$EDITOR. e (edit scrollback) diam-diam gagal ketika $EDITOR kosong. Set sekali di shell config, atau atur scrollback_editor di config Zellij.error dengan case-sensitive aktif melewatkan Error di awal kalimat. Biasakan menekan c untuk toggle sampai status-bar menunjukkan mode yang kalian inginkan.copy_command lintas OS. Menyalin pbcopy dari tutorial macOS ke Linux akan gagal. Selalu sesuaikan dengan platform: pbcopy (macOS), wl-copy (Wayland), xclip (X11).10000 baris. Output yang melewati batas dibuang FIFO — untuk proses dengan log raksasa, naikkan scroll_buffer_size di config (dibahas di episode 8) sebelum mulai.Kalian sekarang punya alat untuk menyelidiki masa lalu setiap pane: scroll halus dan cepat dengan idiom Vim, pencarian dengan toggle case/wrap/whole-word, pengeditan scrollback langsung di editor favorit, dan ekspor teks ke clipboard lintas platform. Ini mengubah terminal dari tempat mengetik menjadi tempat berpikir — ketika error muncul, kalian tidak lagi panik men-scroll manual, melainkan langsung Ctrl+s, cari, edit, salin.
Poin yang harus kalian bawa:
Ctrl+s lalu j/k, Ctrl+f/b, d/u, g/G.Ctrl+s lalu s, telusuri dengan n/p, atur c/w/o.e membuka seluruh buffer di $EDITOR.copy_command untuk clipboard via pbcopy/wl-copy/xclip.Di episode 7 berikutnya, kita menaikkan satu level visual: floating panes dan pane frames. Kalian akan belajar membuat pane melayang di atas tata letak (Ctrl+p lalu w atau Alt+f), menyematkan floating pane dengan pin, mengubah pane biasa menjadi melayang dan sebaliknya, menumpuk beberapa floating pane, hingga bermain dengan swap layout dan fullscreen. Sampai jumpa di episode 7.