Fzy - быстрый, простой нечеткий селектор текста для терминала с расширенным алгоритмом оценки.
Попробуйте онлайн!
Это было вроде как жизнь. -@Грейгилмор
Fzy Works Great, кстати -@Alexblackie
FZY быстрее и показывает лучшие результаты, чем другие нечеткие искатели.
Большинство других нечетких маттера сортируют на основе длины матча. Fzy пытается найти результат, который намеревался пользователь. Это делает это, предпочитая матчи на последовательных буквах и началах слов. Это позволяет сопоставлять, используя аббревиатуры или разные части пути.
Сравнение кровавого сортировки, используемой нечеткими искателями, можно найти в алгоритме.
Fzy разработан для использования как в качестве плагина редактора, так и в командной строке. Вместо того, чтобы очистить экран, FZY отображает свой интерфейс непосредственно под текущей позицией курсора, прокручивая экран, если это необходимо.
macOS
Используя домашнее пиво
brew install fzy
Использование MacPorts
sudo port install fzy
Arch Linux/MSYS2 : pacman -S fzy
FreeBSD : pkg install fzy
Gentoo Linux : emerge -av app-shells/fzy
Ubuntu/Debian : apt-get install fzy
pkgsrc (Netbsd и другие) : pkgin install fzy
OpenSuse : zypper in fzy
make
sudo make install
Переменная переменная среды PREFIX может использоваться для указания местоположения установки, по умолчанию /usr/local .
Fzy - это падение замены для Selecta, и он может использоваться с примерами использования.
FZY можно легко интегрировать с VIM.
function ! FzyCommand (choice_command, vim_command)
try
let output = system ( a: choice_command . " | fzy " )
catch /Vim:Interrupt/
" Swallow errors from ^C, allow redraw! below
endtry
redraw !
if v: shell_error == 0 && ! empty (output)
exec a: vim_command . ' ' . output
endif
endfunction
nnoremap <leader> e :call FzyCommand("find . -type f", ":e") <cr>
nnoremap <leader> v :call FzyCommand("find . -type f", ":vs") <cr>
nnoremap <leader> s :call FzyCommand("find . -type f", ":sp") <cr> Любая программа может использоваться для фильтрации файлов, представленных через FZE. Ag (Silver Searcher) может использоваться для игнорирования файлов, указанных .gitignore .
nnoremap <leader> e :call FzyCommand("ag . --silent -l -g ''", ":e") <cr>
nnoremap <leader> v :call FzyCommand("ag . --silent -l -g ''", ":vs") <cr>
nnoremap <leader> s :call FzyCommand("ag . --silent -l -g ''", ":sp") <cr> Плавленые попытки представить лучшие матчи в первую очередь. Следующие соображения взвешены при сортировке:
Он предпочитает последовательные символы: file будет соответствовать файлу по сравнению с File T E R.
Это предпочитает соответствие началу слов: amp , вероятно, будет соответствовать PP / M Odels/ P osts.rb.
Это предпочитает более короткие матчи: abce совпадает с ABC D E F над ABC D E.
Это предпочитает более короткие кандидаты: test совпадения тестируют , а не тестирование .