FZF (Fuzzy Finder) là một công cụ tìm kiếm dòng lệnh cực kỳ mạnh mẽ, giúp bạn tìm kiếm file, lịch sử lệnh, và nhiều hơn nữa một cách nhanh chóng. Tuy nhiên, mặc định FZF có thể tìm kiếm trên toàn bộ hệ thống, làm chậm quá trình tìm kiếm. Bài viết này sẽ hướng dẫn bạn cách cấu hình để thay đổi thư mục tìm kiếm mặc định của FZF, giúp bạn tối ưu hóa quy trình làm việc và tiết kiệm thời gian đáng kể. Nếu bạn đang sử dụng FZF hàng ngày, những mẹo này chắc chắn sẽ hữu ích.
Khi bạn mới bắt đầu sử dụng FZF, bạn có thể nhận thấy rằng nó tìm kiếm trên toàn bộ hệ thống, bao gồm cả những thư mục không cần thiết. Điều này dẫn đến việc:
Việc giới hạn phạm vi tìm kiếm giúp FZF hoạt động hiệu quả hơn, tập trung vào những khu vực bạn thường xuyên truy cập. Điều này đặc biệt quan trọng nếu bạn làm việc với các dự án lớn hoặc có nhiều file hệ thống.
Có nhiều cách để thay đổi thư mục tìm kiếm mặc định của FZF. Dưới đây là một số phương pháp phổ biến và hiệu quả nhất:
Cách đơn giản nhất là chỉ định thư mục tìm kiếm trực tiếp khi gọi lệnh FZF. Ví dụ:
:FZF ~
Lệnh này sẽ khởi chạy FZF và bắt đầu tìm kiếm từ thư mục home của bạn (`~`). Bạn có thể thay thế `~` bằng bất kỳ đường dẫn tuyệt đối hoặc tương đối nào.
Nếu bạn sử dụng FZF thông qua một key mapping trong Vim, bạn có thể chỉnh sửa mapping để thêm đối số này. Ví dụ:
map <c-space> :FZF ~<cr>
Lưu ý, phương pháp này chỉ áp dụng cho lần gọi FZF cụ thể đó. Để thay đổi mặc định, bạn cần sử dụng các phương pháp tiếp theo.
FZF_DEFAULT_COMMAND
Biến môi trường FZF_DEFAULT_COMMAND
cho phép bạn tùy chỉnh lệnh mà FZF sử dụng để tìm kiếm file. Bạn có thể sử dụng các công cụ tìm kiếm khác như `fd` (find alternative), `ripgrep`, hoặc `ag` (the silver searcher) để tăng tốc độ tìm kiếm và hỗ trợ các tính năng nâng cao.
Ví dụ, để sử dụng `fd` và giới hạn tìm kiếm trong thư mục home, bạn có thể thêm dòng sau vào file cấu hình shell của bạn (ví dụ: `.bashrc`, `.zshrc`):
export FZF_DEFAULT_COMMAND="fd . $HOME"
Lưu ý quan trọng: Trên Debian Buster, bạn cần sử dụng lệnh `fdfind` thay vì `fd`.
Điều này sẽ khiến FZF sử dụng `fd` để tìm kiếm file, bắt đầu từ thư mục home. `fd` nhanh hơn `find` và tự động bỏ qua các file và thư mục được liệt kê trong file `.gitignore` và `.ignore`.
Để thay đổi mặc định này bạn có thể dùng lệnh
alias fzfcl = "export FZF_DEFAULT_COMMAND='fd .'"
Để quay lại cấu hình mặc định:
alias fzf- = "export FZF_DEFAULT_COMMAND='fd . $HOME'"
FZF_DEFAULT_OPTS
và --walker-root
Một cách khác để chỉ định thư mục tìm kiếm mặc định là sử dụng biến môi trường FZF_DEFAULT_OPTS
kết hợp với tùy chọn --walker-root
. Ví dụ:
export FZF_DEFAULT_OPTS="--walker-root=/"
Lệnh này sẽ thiết lập thư mục gốc `/` làm thư mục tìm kiếm mặc định. Lưu ý rằng bạn cần sử dụng đường dẫn tuyệt đối. ~
sẽ không hoạt động, bạn cần thay thế bằng đường dẫn tuyệt đối đến thư mục home của bạn (ví dụ: `/home/username`).
Để minh họa cách cấu hình FZF hiệu quả, hãy xem xét một ví dụ sử dụng `fd` và file `.ignore` để loại trừ các thư mục không cần thiết.
sudo apt install fd-find
export FZF_DEFAULT_COMMAND="fd . $HOME"
touch ~/.ignore
Trong file `.ignore`, liệt kê các thư mục bạn muốn FZF bỏ qua. Ví dụ:
anaconda3/
arch/
cache/
# Loại trừ tất cả thư mục con
*/
Bạn cũng có thể sử dụng dấu `!` để "bỏ loại trừ" một thư mục cụ thể, ví dụ:
!code/
!Desktop/
!documents/
Với cấu hình này, FZF sẽ chỉ tìm kiếm trong các thư mục `code`, `Desktop`, và `documents` trong thư mục home của bạn, bỏ qua tất cả các thư mục khác.
Thay đổi thư mục tìm kiếm mặc định của FZF là một cách đơn giản nhưng hiệu quả để tăng tốc độ tìm kiếm và cải thiện trải nghiệm làm việc. Bằng cách sử dụng các phương pháp như đối số dòng lệnh, biến môi trường FZF_DEFAULT_COMMAND
, và file `.ignore`, bạn có thể tùy chỉnh FZF để phù hợp với nhu cầu cụ thể của mình. Hãy thử các phương pháp này và khám phá cách chúng có thể giúp bạn tiết kiệm thời gian và làm việc hiệu quả hơn.
Bài viết liên quan