Há uma extensão "line" no plug-in Ctrl-P mais recente para vim ( ctrlp ), que pode fazer pesquisas de linhas difusas. Você precisa habilitar a extensão manualmente. Aqui está minha configuração em .vimrc
:
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlPLastMode'
let g:ctrlp_extensions = ['buffertag', 'tag', 'line', 'dir']
Depois disso, pressione Ctrl-p
para exibir o menu e pressione Ctrl-f
várias vezes até que o modo de linha esteja ativado. Digite sua string difusa agora:
ATUALIZAÇÃO 27 de fevereiro de 2014
Uma solução alternativa que atualmente estou usando seria usar unir . Para fazer a pesquisa de linhas difusas, você precisa ajustar um pouco a união:
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>
Agora pressione Ctrl-k
e digite:
A propósito, o unite também pode fazer pesquisa de arquivos confusos por nome.
ATUALIZAÇÃO 3 de agosto de 2016
Outra maneira de fazer a pesquisa de linha é usar o fzf junto com o plugin vim que o acompanha . Consulte as instruções de instalação aqui: https://github.com/junegunn/fzf.vim#installation
Depois de instalar o fzf e o fzf.vim, você pode usar :BLines
para pesquisar linhas no buffer atual:
Você deve ter notado que não é exatamente uma pesquisa difusa, o que significa que eu preciso usar espaços. Isso pode não funcionar com você.
Não é exatamente o que você deseja, mas
set incsearch
seu padrão é correspondido à medida que você digita. Não é uma correspondência realmente confusa, mas o sentimento é semelhante.fonte
incsearch
é ótimo, mas não é o que estou procurando.