LINUX.ORG.RU

Живой поиск в Vim

 , ,


0

1

Поставил себе задачу научиться писать плагины для Vim и одним из плагинов выбрал живой поиск по файлам в текущей директории (одна из функциональностей CtrlP)

Столкнулся проблемой что не могу заставить буфер с результатами и поле ввода работать вместе, а не по очереди

function! s:SearchFinderDialog(query)
    silent! execute "botright pedit ls"
    noautocmd wincmd P
    set buftype=nofile

    for filepath in s:GetMatchedFiles(a:query)
        silent! execute "r! echo " . filepath
    endfor
    silent! execute "redraw!"

    let search_query = input('>>> ')
    call s:SearchFinderDialog(search_query)
endfunc

Это решение выводит список файлов в буффер и показывает строку ввода

А подскажите как реализовать как в CtrlP? Стрелки (вверх, вниз) управляют буфером (выделением файла), а набор текста ведется в строку поиска

Ссылка на gif

вот

как в CtrlP

то и не надо.

он и сам устарел т.к. не асинхронный (fzf + ag|ack уж тогда) и вообще... может прежде чем пейсать плагины, имеет смысл доскональнее ознакомиться с уже предоставляемым функционалом vim? (подсказка: он очень обширный)

mos ★★☆☆☆ ()
Последнее исправление: mos (всего исправлений: 1)
Ответ на: комментарий от mos

Я знаком с fzf, но причем тут он, если задача написать свой. Не потому что он будет лучше, не потому что я не нашел fzf, а потому что я именно хочу написать свой, познакомится с возможностями Vim при разработке плагинов. А сейчас я именно что застрял с реализацией одной функциональности, которую точно можно сделать. Сюда пришел за помощью, если Вы знаете как это реализовать помогите, пожалуйста. Не ищите смысла в моем плагине - его нет, это просто «хочу сделать».

shotInLeg ()