
Làm việc với terminal mỗi ngày là điều không thể tránh đối với lập trình viên. Hai công cụ terminal cải thiện năng suất đáng chú ý trong thời gian gần đây là fzf và zoxide. Kết hợp chúng sẽ biến shell của bạn thành công cụ tìm kiếm và điều hướng siêu tốc, giúp bạn bỏ qua hàng loạt lệnh mòn mỏi như cd lặp đi lặp lại và grep khổng lồ trong bash history.
fzf là fuzzy finder bất kỳ danh sách nào trên terminal. zoxide là thay thế thông minh cho cd, ghi nhớ thư mục bạn thường truy cập và nhảy đến đó chỉ với vài phím gõ. Cùng khám phá cách cài đặt, cấu hình và tận dụng tối đa hai công cụ này.

fzf: Tìm kiếm mờ mọi thứ
fzf cho phép bạn chọn một mục từ danh sách tương tác bằng cách gõ từ khóa gần đúng (fuzzy matching). Nó hỗ trợ: lịch sử lệnh bash/zsh, danh sách tệp, danh sách tiến trình, biến môi trường, host SSH, bookmarks và output của lệnh bất kỳ.
Cài đặt trên Ubuntu/Debian:
sudo apt install fzf
Cài đặt trên macOS:
brew install fzf
Sau khi cài đặt, bạn có thể tìm kiếm lịch sử lệnh với phím Ctrl + R (bash/zsh) hoặc tìm file với:
fzf --preview="bat --color=always {}"
Triggers hữu ích:
Ctrl + T: Dán đường dẫn file/folder được chọn vào dòng lệnh hiện tại.Ctrl + R: Tìm kiếm lịch sử lệnh.Alt + C: Di chuyển đến thư mục được chọn.
zoxide: Thay thế cd thông minh
zoxide ghi nhận các thư mục bạn truy cập và xây dựng chỉ số quý giá dựa trên tần suất. Thay vì gõ cd /dự/án/làm/vừa/rồi/backend, bạn chỉ cần:
z backend
zoxide sẽ nhảy đến thư mục phù hợp nhất trong lịch sử. Nếu có nhiều kết quả, một menu fzf hiện ra để bạn chọn.
Cài đặt trên Linux:
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
Sau cài đặt, thêm dòng này vào .bashrc hoặc .zshrc:
eval "$(zoxide init bash)"
Hoặc với zsh:
eval "$(zoxide init zsh)"
Tích hợp fzf và zoxide
Khi bạn cài cả hai, zoxide sẽ tự động sử dụng fzf làm công cụ chọn khi có nhiều kết quả. Điều này cho phép bạn nhảy giữa các thư mục bằng cách gõ vài ký tự, sau đó chọn trong menu tương tác. Tốc độ điều hướng tăng lên đáng kể.
Một cấu hình nâng cao cho bashrc:
# Tìm file và mở bằng editor
alias f='fzf --preview="bat --color=always {}" --bind="enter:become(nvim {})"'
# Jump với zoxide kết hợp fzf
alias j='zoxide query -i'
So sánh các công cụ điều hướng terminal
| Công cụ | Ưu điểm | Nhược điểm | Phù hợp |
|---|---|---|---|
| cd mặc định | Có sẵn, không cần cài | Gõ dài, nhớ đường dẫn khó | Người mới |
| autojump | Nhớ thư mục theo trọng số | Không hỗ trợ fuzzy search tốt | Điều hướng thụ động |
| zoxide | Fuzzy search, nhanh, nhẹ | Cần cài đặt, học phím tắt | Power user |
| fzf | Tìm mờ mọi danh sách, preview | Chỉ tìm kiếm, không ghi nhớ thư mục | Tìm file, lịch sử, tiến trình |
fzf và zoxide hoàn hảo khi dùng cùng nhau: zoxide ghi nhớ và đề xuất thư mục, fzf giúp bạn lọc và chọn nhanh chóng.

Tối ưu hóa thêm với fzf
Bạn có thể kích hoạt preview khi tìm kiếm file bằng cách cài đặt bat (cat đẹp có syntax highlight):
sudo apt install bat
Sau đó, cấu hình alias trong shell:
alias fz='fzf --preview="bat --color=always --style=numbers,changes {}" --preview-window=right:50%:wrap'
Bây giờ, mỗi khi bạn gõ fz, danh sách file sẽ hiện ra ở bên trái, nội dung file hiện ở bên phải — không cần mở editor để xem nội dung.
Lời khuyên khi dùng
- Dùng
Ctrl + Rđể tìm lệnh đã chạy thay vì mò lịch sử dài. - Dùng
zđể nhảy nhanh đến thư mục thường dùng. - Gắn
Alt + Cvới zoxide để mở terminal trực tiếp ở thư mục mục tiêu. - Thêm
--height 40%cho fzf nếu màn hình nhỏ, tránh che toàn bộ terminal.
Với fzf và zoxide, bạn sẽ tiết kiệm hàng phút mỗi ngày chỉ với vài phím gõ. Đây là công cụ bắt buộc với bất kỳ ai làm việc chuyên sâu với terminal.
Nguồn tham khảo:
