Menggabungkan Zsh dengan tools produktivitas modern: hint abu-abu dari zsh-autosuggestions, pewarnaan perintah real-time dari zsh-syntax-highlighting, smart cd zoxide, fuzzy finder fzf dengan Ctrl-T dan Ctrl-R, serta integrasi bat, ripgrep, dan tmux untuk workflow terminal yang jauh lebih cepat

Setelah di episode 12 ekosistem plugin kalian sudah terpasang, pada episode ini kita menggabungkan Zsh dengan tools produktivitas modern yang mengubah cara bekerja di terminal: autosuggestions yang "menerka" perintah berikutnya, syntax highlighting yang mewarnai saat mengetik, smart cd dengan zoxide, fuzzy finder fzf, dan pendamping seperti bat, ripgrep, serta tmux.
Inilah "kit lengkap" terminal yang dipakai banyak developer dan DevOps sehari-hari. Masing-masing tool berdiri sendiri, tetapi sinerginya dengan Zsh — lewat plugin dan integrasi — yang membuatnya luar biasa. Episode ini juga menjawab pertanyaan "kenapa masih pakai Zsh padahal ada fish?" — karena Zsh terintegrasi dengan tools ini secara mulus.
zsh-autosuggestions menampilkan perintah yang paling mungkin kalian ketik berikutnya sebagai teks abu-abu di belakang kursor, berdasarkan history. Terima dengan menekan → (atau End), lanjutkan mengetik untuk kustomisasi.
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.zsh/custom}/plugins/zsh-autosuggestionsplugins=(... zsh-autosuggestions)
# atau lewat zinit:
zinit light zsh-users/zsh-autosuggestionsCara pakainya:
# Ketik sebagian, tekan panah kanan untuk menerima saran:
git p<→> # menerima "git push" dari historyPengaturan warna saran default sering terlalu gelap; sesuaikan dengan:
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#808080"zsh-syntax-highlighting mewarnai perintah yang sedang diketik: perintah yang valid berwarna hijau, yang tidak dikenal merah, argumen dan string punya warna sendiri. Error seperti perintah typo langsung terlihat sebelum menekan Enter.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
${ZSH_CUSTOM:-~/.zsh/custom}/plugins/zsh-syntax-highlightingplugins=(... zsh-syntax-highlighting) # WAJIB TERAKHIRWarning
zsh-syntax-highlighting harus dimuat setelah semua plugin lain — jika dimuat lebih dulu, plugin lain yang mewarnai perintah akan menimpanya. Ini urutan yang paling sering salah di Oh My Zsh.
Contoh visual: ketik git statsu → kata git hijau, statsu merah (tidak dikenal). Ketik cd /etc/hosts → cd hijau, /etc/hosts biru (path valid).
Dari episode 8, zoxide menggantikan cd dengan lompatan berbasis frekuensi:
brew install zoxide # macOS
sudo apt install zoxide # Debian/Ubuntu
eval "$(zoxide init zsh)"z devvnull # jump ke direktori yang sering dikunjungi
z - # kembali
zi # interaktif — pilih dari daftar dengan fzfzi memakai fzf (dibahas berikutnya) untuk memilih direktori dari daftar interaktif — kombinasi paling efisien untuk berpindah direktori.
fzf adalah fuzzy finder generik yang mencari dari pipe atau daftar file dan menampilkan hasil interaktif.
brew install fzf
sudo apt install fzfeval "$(fzf --zsh)" # atau source /usr/share/doc/fzf/examples/key-bindings.zshIni menambahkan keybinding kunci:
| Shortcut | Fungsi |
|---|---|
Ctrl-T | Pilih file/direktori dan tempel ke command line |
Ctrl-R | Cari history secara fuzzy dan salin ke command line |
Alt-C | Pilih direktori dan langsung cd |
vim <Ctrl-T> # pilih file dari direktori, tempel path
<Ctrl-R> # ketik "kubectl", fuzzy cari history
<Alt-C> # pilih direktori, langsung masukfzf bisa memakai preview bat untuk menampilkan isi file saat dipilih:
export FZF_DEFAULT_OPTS="--preview 'bat --color=always --line-range :100 {}'"fzf juga mengerti glob Zsh dan ** tab completion:
cd **<Tab> # pilih direktori dengan fzf
kill **<Tab> # pilih proses dengan fzf
ssh **<Tab> # pilih host dari known_hostsbat adalah cat modern dengan syntax highlighting, line numbers, dan git gutter. ripgrep (rg) adalah grep modern yang sangat cepat, yang mematuhi .gitignore.
brew install bat ripgrep
sudo apt install bat ripgrepbat src/index.ts # tampilkan file dengan highlight
rg "TODO" src/ # cari TODO di src/, hormati .gitignore
rg -l "error" **/*.log # nama file yang mengandung "error"Integrasi alami dengan Zsh: ganti grep dan cat via alias (episode 10):
alias cat='bat'
alias grep='rg'Tip
Kombinasi paling produktif: rg untuk mencari, fzf untuk memilih, bat untuk melihat. Pipeline rg -l "TODO" | fzf --preview 'bat {}' memberi pencarian interaktif di seluruh codebase tanpa IDE.
tmux membagi terminal menjadi beberapa pane/window persisten. Integrasi dengan Zsh relevan di dua titik:
.zshrc, mulai tmux otomatis jika belum ada (dan bukan sesi SSH/CI):if [[ -z "$TMUX" ]] && [[ -z "$SSH_CONNECTION" ]] && [[ -o interactive ]]; then
exec tmux new-session -A -s main
fitmux bisa dipasangkan dengan plugin seperti tmux-continuum untuk persistensi. Series learn-tmux di repo ini membahasnya lebih dalam.
Combined workflow harian:
z devvnull # jump ke proyek
rg "bug" src/ # cari bug
vim <Ctrl-T> # pilih file yang ditemukan
<Ctrl-R> dev # history fuzzy perintah dev
<Alt-C> # pindah ke direktori lain
bat README.md # baca file dengan highlightSemua tools ini bekerja di atas Zsh tanpa konflik karena masing-masing mematuhi konvensi: zoxide & fzf menyediakan eval/source untuk Zsh, bat/ripgrep murni binary, dan plugin Zsh menambahkan keybinding yang konsisten.
Ctrl-R saling menimpa; urutan source menentukan mana yang menang. Tentukan satu penguasa Ctrl-R.cat diganti bat — beberapa skrip mengharapkan perilaku cat asli (misal tanpa warna saat non-tty); bat otomatis non-warna saat pipe, tetapi tetap uji.set -g default-terminal "tmux-256color" di .tmux.conf.eval "$(fzf --zsh)" hanya jika perintah itu tersedia; cek dengan command -v fzf sebelum eval agar .zshrc tidak error di mesin tanpa fzf.Inti yang harus dibawa pulang:
zsh-autosuggestions memberi hint abu-abu dari history; terima dengan →.zsh-syntax-highlighting mewarnai perintah real-time; harus dimuat terakhir.zoxide (z, zi) + fzf (Ctrl-T, Ctrl-R, Alt-C) = navigasi dan pencarian fuzzy.bat dan rg menggantikan cat/grep untuk output yang jauh lebih nyaman..zshrc dengan guard.Di episode 14 selanjutnya kita akan membahas async, jobs & piping — menjalankan perintah di background dengan &, mengelola dengan jobs/bg/fg/wait/disown, pipeline dengan |, coprocess coproc, dan fitur khas Zsh multios untuk menulis ke banyak file sekaligus. Sampai jumpa di episode 14!