Belajar Zellij - Filepicker, Strider & File Navigation
Episode 14 of 29

Belajar Zellij - Filepicker, Strider & File Navigation

menavigasi filesystem tanpa meninggalkan session: filepicker 0.40 untuk memilih file dan folder dengan preview, konfigurasi keybinding dan opsi close-on-selection, plus strider sebagai file explorer permanen.

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

Pendahuluan

Di episode 13, kalian belajar mengendalikan Zellij dari luar session lewat CLI actions dan pipes. Sekarang kita kembali ke dalam session, ke salah satu aktivitas yang paling sering kalian lakukan: mencari dan membuka file. Workflow klasiknya kira-kira begini: cd ke direktori, ls untuk melihat isi, menemukan folder lain, cd lagi, ls lagi — dan sebelum kalian sadar, sepuluh menit terlewat dan fokus sudah pecah.

Episode 14 memperkenalkan dua alat yang memecahkan masalah ini: filepicker dan strider. Keduanya sebenarnya adalah wajah dari plugin yang sama — plugin file explorer bawaan Zellij yang dirombak besar-besaran pada versi 0.40. Filepicker muncul saat kalian butuh: ia membuka jendela apung untuk memilih file atau folder dengan cepat, lengkap dengan preview. Strider adalah versi permanennya: file explorer yang menetap di samping pane kalian seperti file tree di IDE, selalu siap digunakan tanpa harus membuka apa pun.

Mengapa ini penting? Navigasi file adalah salah satu pembunuh fokus terbesar di terminal. Setiap kali tangan kalian meninggalkan keyboard untuk mencari file lewat jalur cd/ls yang berulang, kalian membayar biaya kognitif. Dengan filepicker dan strider, kalian mendapatkan seleksi file yang deterministik, preview tanpa membuka file, dan integrasi dengan editor — semuanya keyboard-first. Dan di akhir episode, kalian akan melihat bagaimana keputusan pemilihan file — yang biasanya butuh sepuluh baris perintah shell — bisa dipadatkan menjadi satu pilihan di layar, dengan preview yang menyelamatkan kalian dari membuka file yang salah. Di episode ini kita akan membahas cara membuka filepicker, gerakan navigasinya, konfigurasi keybinding, mode permanen strider, dan cara mengalirkan path terpilih ke perintah lain. Mari mulai.

Filepicker: Menjelajah Filesystem dari Dalam Session

Filepicker adalah plugin built-in yang memungkinkan kalian menelusuri filesystem secara dinamis. Ketika diluncurkan, ia mulai dari working directory pane yang sedang fokus — bukan dari home, bukan dari root, melainkan dari tempat kalian berada. Ini detail kecil yang membuat perbedaan besar: ia memulai dari konteks kalian.

Ada beberapa cara meluncurkannya. Di welcome screen, kalian bisa membuka filepicker dengan Ctrl+f pada form pembuatan session baru. Dari command line, perintahnya adalah:

Meluncurkan filepicker dari CLI
zellij plugin -- filepicker

Perhatikan bahwa filepicker di sini adalah plugin alias — nama pendek untuk plugin strider yang sudah terdaftar di konfigurasi Zellij dengan konfigurasi khusus. Ini berarti kalian bisa mengganti implementasinya dengan plugin kustom yang tetap mengikuti kontrak yang sama, tanpa mengubah layout atau skrip apa pun. Di dalam session, filepicker paling nyaman dipicu lewat keybinding — yang akan kita bahas sebentar lagi.

Apapun jalur peluncurannya, filepicker selalu membuka sebagai antarmuka interaktif penuh: daftar item di satu sisi, kolom preview di sisi lain, dan baris PATH di bagian bawah yang menunjukkan pilihan kalian saat ini. Selama filepicker terbuka, kalian berada di "dunia filepicker" — semua tombol yang kalian tekan ditangani oleh plugin, bukan oleh shell di belakangnya, sampai kalian menekan Esc untuk keluar atau Enter untuk mengeksekusi pilihan.

Saat filepicker terbuka, kalian akan melihat daftar file dan folder di direktori aktif. Fokus bisa berpindah antar item dengan panah, dan setiap keputusan diikuti dengan umpan balik visual yang jelas. Berikut peta gerakannya:

TombolFungsi
Panah / j / kBerpindah antar item
Tab / Panah KananMenambahkan item ke PATH dan beralih ke preview
EnterMembuka isi PATH — file dibuka di $EDITOR, folder membuka terminal di lokasi itu
BackspaceNaik satu direktori
Ctrl+eToggle tampilan file tersembunyi

Logikanya sederhana dan konsisten: kalian menyeleksi (tambahkan ke PATH), lalu mengeksekusi (Enter). Jika yang terseleksi adalah file, Zellij membukanya di editor default kalian dalam pane baru; jika folder, Zellij membuka terminal di lokasi tersebut.

Keunggulan filepicker dibanding cd/ls adalah preview. Ketika kalian menambahkan item ke PATH dengan Tab atau panah kanan, Zellij menampilkan isi item tersebut — untuk folder, daftar isinya; untuk file, isi teksnya — di kolom preview di sebelah daftar. Kalian bisa memeriksa isi file tanpa pernah membukanya, memutuskan, lalu menekan Enter. Ini pola pikir "lihat sebelum buka" yang sangat menghemat waktu.

Selain navigasi panah, kalian bisa mengetik langsung untuk memfilter. Saat kalian mulai mengetik, filepicker beralih ke mode pencarian dan memfilter daftar berdasarkan yang kalian ketik — ini membuat pencarian file dengan nama yang samar menjadi cepat dan deterministik. Tekan Esc untuk kembali ke mode navigasi biasa.

Filter ini bersifat pragmatis, bukan pencarian yang kaku: kalian tidak perlu mengetik nama lengkap atau berurutan sempurna. Cukup ketik potongan yang membedakan file yang kalian cari dari file-file lain di direktori, dan daftar menyempit mengikuti ketikan kalian. Di direktori dengan ratusan file, ini jauh lebih cepat daripada menelusuri ls baris demi baris.

Tip

Biasakan pasangan TabEnter. Tab menambahkan item ke PATH sekaligus menampilkan preview, lalu Enter mengeksekusi pilihan. Dengan pasangan ini kalian bisa menjelajah folder yang dalam dengan hanya tiga tombol: j/k untuk bergerak, Tab untuk masuk, Backspace untuk keluar — tanpa menyentuh cd sama sekali.

Perhatikan satu perilaku: jika kalian menekan Enter pada folder yang belum masuk PATH, Zellij menganggapnya sebagai perintah untuk masuk ke folder itu dan membuka terminal di sana. Jika folder sudah masuk PATH, Enter juga membuka terminal di sana. Jadi jangan kaget ketika menekan Enter pada sebuah folder menghasilkan pane baru — itu adalah desainnya.

Perlu diingat: filepicker selalu memulai dari cwd pane yang fokus. Jika kalian sering berpindah-pindah direktori dan merasa filepicker "membuka di tempat yang salah", itu karena pane tempat kalian membukanya berbeda cwd-nya. Untuk perilaku yang konsisten dari mana pun dipicu, atur ulang alias filepicker di blok plugins pada config.kdl dengan opsi cwd tetap.

Keybinding Filepicker: Konfigurasi config.kdl

Filepicker tidak punya keybinding bawaan yang selalu aktif di semua mode — Zellij menyerahkan keputusan ini kepada kalian. Contoh resmi yang paling umum adalah mengikatnya ke Alt+f pada bagian shared_except "locked":

config.kdl — keybinding filepicker
keybinds {
    shared_except "locked" {
        bind "Alt f" {
            LaunchPlugin "filepicker" {
                floating true
                close_on_selection true
            };
        }
    }
}

Dua opsi di dalam blok LaunchPlugin menentukan perilaku utamanya:

OpsiNilaiEfek
floatingtrue / falseMembuka filepicker sebagai floating pane di atas pane lain, bukan mengambil alih pane aktif
close_on_selectiontrue / falsetrue menutup filepicker setelah satu pilihan; false membiarkannya terbuka untuk memilih banyak file

Untuk workflow multi-file — misalnya membuka beberapa file sumber sekaligus — set close_on_selection false dan tutup filepicker secara manual dengan Ctrl+p lalu x setelah selesai. Untuk seleksi tunggal yang cepat, close_on_selection true adalah pilihan yang tepat karena filepicker menghilang segera setelah Enter.

Important

close_on_selection true adalah perilaku yang sering dilupakan orang. Jika kalian memilih file dan filepicker tetap terbuka, itu bukan bug — itu berarti opsi tersebut belum diset atau sedang bernilai false. Periksa konfigurasi LaunchPlugin sebelum menyalahkan Zellij.

Setelah mengubah config.kdl, kalian tidak perlu restart — Zellij memuat ulang konfigurasi secara otomatis, dan keybinding baru langsung aktif di session berikutnya.

Perhatikan bahwa keybinding ini ditempatkan di shared_except "locked", bukan di dalam satu mode tertentu. Ini berarti Alt+f berfungsi dari mode mana pun — normal, pane, tab, resize, dan seterusnya — kecuali saat Zellij terkunci. Persis seperti Alt+h/Alt+l untuk pindah fokus yang sudah kalian kenal dari episode 4. Menempatkan pemicu plugin di shared_except adalah pola yang konsisten untuk semua plugin yang harus bisa dipanggil kapan saja.

Strider: File Explorer Permanen untuk Workflow IDE

Filepicker adalah solusi "saat dibutuhkan". Tapi ada pola kerja lain yang tak kalah penting: file explorer yang selalu terbuka di samping, persis seperti sidebar di IDE. Untuk itu Zellij menyediakan strider — plugin yang sama, dipakai sebagai layout permanen.

Zellij memiliki layout bawaan bernama strider yang mengatur workspace sebagai dua kolom: file explorer di satu sisi, dan pane utama (biasanya editor) di sisi lain. Ada dua cara memakainya:

Membuka tab dengan layout strider
zellij -l strider
zellij action new-tab -l strider

zellij -l strider memulai session baru dengan layout tersebut. zellij action new-tab -l strider — yang memanfaatkan materi episode 13 — membuka tab baru dengan layout strider di dalam session yang sedang berjalan. Kombinasi keduanya sangat berguna: session kerja utama kalian tetap utuh, dan tab strider menjadi "jendela ke project" yang bisa dibuka dan ditutup kapan saja.

Di dalam layout strider, semua navigasi filepicker berlaku: j/k untuk bergerak, Tab untuk preview, Enter untuk membuka file di $EDITOR pada pane utama. File yang terbuka muncul di pane editor di sampingnya — alur kerja yang meniru IDE tetapi sepenuhnya berada di dalam terminal, dengan session Zellij yang tetap bisa di-detach.

Preview di strider berfungsi ganda. Untuk folder, ia menunjukkan isi direktori yang akan kalian masuki — jadi kalian bisa memastikan ini folder yang benar sebelum menekan Enter. Untuk file, ia menampilkan isi teks secara langsung, cukup untuk menilai apakah file ini yang kalian cari. Ketika kalian berpindah ke file lain, preview ikut berpindah tanpa jeda; pane editor baru hanya terbuka ketika kalian benar-benar menekan Enter. Dengan kata lain, strider menghilangkan siklus coba-salah "buka file, ternyata salah, tutup, buka file lain" yang sangat membuang waktu.

Tip

Terapkan pola yang sama untuk kebutuhan lain: buat layout KDL custom yang memposisikan strider di sisi kiri dan editor di kanan, lalu jalankan zellij -l <nama-layout> saat mulai mengerjakan project. Strider adalah plugin biasa, jadi posisi dan ukurannya sepenuhnya bisa kalian kendalikan lewat layout.

Sebagai bonus, Zellij juga mendeteksi path file di output terminal dan membuatnya dapat diklik. Path seperti src/main.rs:42 yang muncul di output kompiler atau log bisa diklik untuk langsung membuka file di $EDITOR dalam floating pane — jembatan antara output program dan filepicker yang sangat natural.

Pipeline: Memilih File dengan Filepicker dari Shell

Kekuatan terakhir filepicker adalah kemampuannya berintegrasi dengan pipeline shell tradisional. Lewat alias zpipe (atau zellij pipe), filepicker bisa membuka, menunggu kalian memilih, lalu mencetak path terpilih ke stdout — dua bentuk perintah yang setara:

zpipe filepicker
Memilih path dan meneruskannya ke perintah lain
FILE=$(zpipe filepicker)
echo "File terpilih: $FILE"
cp "$FILE" /tmp/backup/

Baris pertama membuka filepicker, dan setelah kalian menekan Enter, path yang dipilih disimpan ke variabel FILE. Selanjutnya, perintah apa pun bisa memakainya. Ini adalah contoh nyata dari ide episode 13 — pipes menghubungkan Zellij dengan dunia luar — kali ini berjalan dari dalam ke luar: pemilihan yang interaktif, hasil yang non-interaktif.

Warning

zpipe filepicker bersifat menunggu: perintah akan memblokir sampai kalian memilih sesuatu dan menekan Enter, atau menutup filepicker. Jangan menjalankannya di konteks non-interaktif (misalnya dari CI tanpa PTY) karena tidak akan pernah selesai. Pastikan selalu ada manusia di belakang terminal saat memakainya.

Kombinasi paling produktif: zpipe filepicker dipasangkan dengan fungsi shell yang membuka file di editor kalian, atau dengan git — misalnya memilih file untuk di-git add, tanpa mengetik path panjang yang rawan salah ketik.

Pola ini juga berlaku untuk membuka file di editor favorit. Buat alias shell sederhana — misalnya fe() { nvim "$(zpipe filepicker)"; } — dan kalian mendapatkan dialog pemilih file untuk Neovim tanpa plugin apa pun. Karena Zellij membuka file yang dipilih dalam pane baru, kombinasi zpipe dengan editor kalian menghasilkan workflow yang setara dengan command palette di editor modern, tetapi bekerja untuk semua alat yang berbasis terminal.

Kesalahan Umum (Common Pitfalls)

  1. Menekan Enter tanpa menambahkan item ke PATH. Enter mengeksekusi isi PATH, bukan item yang sedang disorot. Gunakan Tab atau panah kanan untuk menambahkan item terlebih dahulu, kecuali kalau memang sengaja ingin membuka folder.
  2. Filepicker "mulai di tempat yang salah". Ia memulai dari cwd pane fokus. Jika hasilnya mengejutkan, periksa cwd pane, atau kunci direktori awal lewat alias filepicker dengan opsi cwd di config.kdl.
  3. Mengira close_on_selection adalah bawaan. Perilaku default membuat filepicker tetap terbuka. Set close_on_selection true secara eksplisit jika ingin menutup otomatis setelah satu pilihan.
  4. $EDITOR tidak diset. Saat filepicker membuka file, ia memanggil editor default dari variabel environment $EDITOR. Tanpa itu, file tidak akan terbuka di editor yang kalian harapkan. Set $EDITOR (misalnya export EDITOR=nvim) di shell config.
  5. Menjalankan zpipe filepicker di lingkungan non-interaktif. Perintah memblokir menunggu pilihan manusia; di CI atau skrip tanpa interaksi ia akan menggantung. Gunakan hanya saat ada terminal interaktif.

Penutup

Episode ini menutup lingkaran navigasi file di Zellij. Kalian sekarang bisa memilih file tanpa cd/ls yang berulang, melihat isi file sebelum membukanya, membuka editor dari filepicker, dan bahkan mengalirkan path terpilih ke perintah lain — semua di dalam session, tanpa melepas tangan dari keyboard.

Poin yang harus kalian bawa:

  • Filepicker (strider) adalah plugin file explorer bawaan yang dimulai dari cwd pane fokus.
  • Navigasi inti: j/k bergerak, Tab menambahkan ke PATH dan menampilkan preview, Enter mengeksekusi, Backspace naik folder, Ctrl+e untuk file tersembunyi.
  • Ikat filepicker ke keybinding lewat LaunchPlugin "filepicker" dengan opsi floating dan close_on_selection.
  • Strider sebagai layout permanen (zellij -l strider atau zellij action new-tab -l strider) memberi pengalaman file explorer ala IDE di terminal.
  • zpipe filepicker mencetak path terpilih ke stdout — pasangkan dengan perintah apa pun.

Filepicker dan strider adalah plugin — dan inilah kunci pemahaman selanjutnya. Di episode 15 kita membongkar sistem plugin Zellij secara menyeluruh: bagaimana plugin WASM berjalan, protokol pesannya, cara memuat plugin dari file maupun dari web, dan peran Plugin Manager. Sampai jumpa di episode 15.

Belajar Zellij - Filepicker, Strider & File Navigation | Belajar Zellij