Tìm thấy mờ trong tập tin trong Vim


21

Tôi thích sử dụng plugin Command-T trong Vim để thực hiện tìm kiếm mờ cho tên tệp. Tôi thích nó đến mức tôi đã bắt đầu muốn thực hiện các tìm kiếm mờ tương tự cho các chuỗi tùy ý trong một bộ đệm mở.

Ví dụ: nếu tôi đang chỉnh sửa tệp CSS có chứa bộ chọn như #support-main .question .answer-ratinghiện tại, tôi hiện có thể nhập /support-main .questionđể tìm dòng đó.

Tôi muốn có thể gọi một công cụ tìm mờ và chỉ cần gõ một cái gì đó như supmaiqueđể tìm cùng một dòng (trong số những người khác). Tôi biết tôi có thể gõ /sup.*mai.*quecho cùng một hiệu ứng nhưng gõ phím .*sẽ phá vỡ sự tập trung của tôi.

Có cách nào để làm việc này không?

Câu trả lời:


23

Có phần mở rộng "dòng" trong plugin Ctrl-P mới nhất cho vim ( ctrlp ) có thể thực hiện tìm kiếm dòng mờ. Bạn cần kích hoạt phần mở rộng bằng tay. Đây là cấu hình của tôi trong .vimrc:

let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlPLastMode'
let g:ctrlp_extensions = ['buffertag', 'tag', 'line', 'dir']

Sau đó, bạn nhấn Ctrl-pđể mang menu, sau đó nhấn Ctrl-fnhiều lần cho đến khi chế độ dòng được bật. Nhập chuỗi mờ của bạn bây giờ:

nhập mô tả hình ảnh ở đây

CẬP NHẬT 27 tháng 2 năm 2014

Một giải pháp thay thế mà tôi hiện đang sử dụng bản thân sẽ là sử dụng đoàn kết . Để thực hiện tìm kiếm dòng mờ, bạn cần điều chỉnh một chút:

call unite#filters#matcher_default#use(['matcher_fuzzy'])
call unite#filters#sorter_default#use(['sorter_rank'])
call unite#custom#source('file,file/new,buffer,file_rec,line', 'matchers', 'matcher_fuzzy')
nnoremap <C-k> :<C-u>Unite -buffer-name=search -start-insert line<cr>

Bây giờ nhấn Ctrl-kvà gõ:

nhập mô tả hình ảnh ở đây

Nhân tiện, đoàn kết cũng có thể thực hiện tìm kiếm tệp mờ theo tên.

CẬP NHẬT 03 tháng 8 năm 2016

Một cách khác để thực hiện tìm kiếm dòng là sử dụng fzf cùng với plugin vim đi kèm . Xem hướng dẫn cài đặt tại đây: https://github.com/junegunn/fzf.vim#installation

Sau khi bạn đã cài đặt cả fzf và fzf.vim, bạn có thể sử dụng :BLinesđể tìm kiếm các dòng trong bộ đệm hiện tại:

Sản lượng mẫu

Bạn có thể nhận thấy rằng nó không chính xác tìm kiếm mờ nghĩa là tôi cần sử dụng khoảng trắng. Điều này có thể không làm việc bạn.


Đã thêm đoàn kết như một giải pháp thay thế.
baltazar

Đã thêm fzf như một giải pháp thay thế.
baltazar

1

Không chính xác những gì bạn muốn, nhưng với set incsearchmẫu của bạn được khớp khi bạn nhập. Nó không thực sự phù hợp mờ nhưng cảm giác là tương tự.


À, vâng. incsearchlà tuyệt vời, nhưng không phải là những gì tôi đang tìm kiếm.
adamesque
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.