03. tháng 6 2025
Từ nhiều năm về trước, khi tôi mới bắt đầu học VIM, tôi thường xuyên sử dụng lệnh grep ngay trong môi trường VIM. Tuy nhiên, kể từ khi biết đến và sử dụng tmux, tôi đã chuyển sang thói quen mới là mở một tmux window riêng biệt để thực thi lệnh grep có sẵn của hệ thống. Lý do cho sự thay đổi này là vì đa số mã nguồn mà tôi hoặc cả nhóm làm việc đều rất quen thuộc, nên tần suất cần dùng grep không cao.
Thời gian trôi qua, dần dần tôi quên hẳn cách sử dụng grep trong VIM... Nhưng khi phải chỉnh sửa ecshop, tôi nhận ra rằng mình liên tục cần tìm kiếm mã nguồn bằng cách sử dụng grep. Đặc biệt là trong những dự án mà cấu trúc thư mục chưa được nắm rõ.
May mắn thay, cách làm rất đơn giản. Bạn chỉ cần nhập lệnh sau trong Vim:
:grep xxx -r dir/sub_dir
Sau đó, tiếp tục nhập:
:copen
Lúc này, bạn sẽ thấy kết quả hiển thị dưới dạng danh sách lỗi (quickfix list). Chỉ cần chọn file mong muốn và nhấn Enter để mở trực tiếp vào vị trí cần xem.
!Kết ban ca thuong quả grep trong Vim
Bạn có thể rồng hổ sử dụng tổ hợp phím Ctrl+r Ctrl+w
để nhanh chóng sao chép từ khóa hiện tại ở con bongdaplus trỏ chuột vào dòng lệnh đang soạn thảo.
Trong hầu hết các trường hợp, sử dụng lệnh :grep
là đủ đáp ứng nhu cầu. Điều này xuất phát từ thực tế rằng :vimgrep
là giải pháp nội bộ của Vim, nơi nó sẽ đọc toàn bộ nội dung file vào bộ nhớ trước khi tiến hành khớp mẫu với biểu thức chính quy. Cách làm này dẫn đến hiệu suất thấp và tốc độ xử lý chậm hơn đáng kể.
Ngược lại, lệnh :grep
tận dụng công cụ grep có sẵn của hệ thống, vốn được tối ưu hóa tốt hơn về mặt hiệu suất. Vì vậy, nếu bạn cần tìm kiếm trên quy mô lớn hoặc trong nhiều file, :grep
luôn là lựa chọn phù hợp hơn.
Hy vọng bài viết này giúp ích cho bạn trong việc sử dụng Vim hiệu quả hơn!