В последнем плагине Ctrl-P для vim (ctrlp) есть расширение "line", которое может выполнять поиск нечетких строк. Вам нужно включить расширение вручную. Вот мой конфиг в .vimrc
:
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlPLastMode'
let g:ctrlp_extensions = ['buffertag', 'tag', 'line', 'dir']
После этого вы нажимаете Ctrl-p
чтобы вызвать меню, затем нажимаете Ctrl-f
несколько раз, пока не включится режим линии. Введите нечеткую строку сейчас:
ОБНОВЛЕНИЕ 27 февраля 2014
Альтернативное решение, которое я сейчас использую сам, - это использовать Unite. Для поиска по нечеткой строке нужно немного настроить объединение:
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>
Теперь нажмите Ctrl-k
и введите:
Кстати, unite также может выполнять нечеткий поиск файлов по имени.
ОБНОВЛЕНИЕ 03 августа 2016
Другой способ поиска строки - использовать fzf вместе с сопровождающим плагином vim. Смотрите инструкции по установке здесь: https://github.com/junegunn/fzf.vim#installation
После того, как вы установили fzf и fzf.vim, вы можете использовать :BLines
для поиска строк в текущем буфере:
Вы, возможно, заметили, что это не совсем нечеткий поиск, означающий, что мне нужно использовать пробелы. Это может не сработать у вас.