vim-clap: 高性能的現代化模糊查找插件

今天分享一下我至今爲止寫的最滿意的一個 Vim 插件:https://github.com/liuchengxu/vim-clap, 它是一個用於模糊查找和搜索的 Vim 插件,在同類插件中最先同時支持 neovim 的floating_win和 vim 的popup, 這也是我造這個輪子的初衷之一。git

在早期,做爲一個純 vimscript 實現的 Vim 插件,vim-clap 在進行大規模搜索時自然會有嚴重的性能問題,不過自從經過使用 Rust 對插件進行擴展之後,如今已經不存在有性能問題,能夠輕鬆面對上百萬的文件搜索。同時,vim-clap 也提供了二進制供直接下載,而且提供了方便的安裝方式。若是使用 vim-plug:github

" 本地編譯 Rust 擴展,須要安裝 cargo
Plug 'liuchengxu/vim-clap', { 'do': ':Clap install-binary' }

" 若是加上 !, 則當本地不存在 cargo 時, 直接下載 GitHub Release 上提供的二進制
Plug 'liuchengxu/vim-clap', { 'do': ':Clap install-binary!' }

v0.6 的一些新特性:vim

g:clap_layout

支持g:clap_layout控制窗口的彈出位置,如今的默認位置相對於喚出 clap 的所在窗口,大小也是相對於該窗口的大小。編輯器

g:clap_layout模擬的是 neovim 的 API, 若是但願打開位置相對於整個編輯器而不是所在窗口:ide

let g:clap_layout = { 'relative': 'editor' }

寬度更寬一點:性能

let g:clap_layout = { 'width': '95%', 'col': '5%' }

g:clap_theme

vim-clap 在 UI 上很是豐富,默認狀況下是從用戶的 colorscheme 中提取顏色,因此自適應於各類主題。可是即便是自適應,也沒法保證對全部主題都適用,並且好像不少人不太會配置主題,因此 v0.6 內置了一個主題material_design_dark, 在自適應表現很差的狀況下,能夠使用內置主題:ui

let g:clap_theme = 'material_design_dark'

也能夠改變material_design_dark的部分顏色, 好比將搜索文本改成紅色:spa

let g:clap_theme = { 'search_text': {'guifg': 'red', 'ctermfg': 'red'} }

還有一些其餘改進參見https://github.com/liuchengxu/vim-clap/releases/tag/v0.6, 好比新增loclistprovider, 不少 linter 能夠將信息填充到 location list, 如今能夠很方便的經過 vim-clap 進行過濾查看錯誤信息,同時支持預覽功能:插件

不少其餘特性就不一一介紹了,詳情查看https://github.com/liuchengxu/vim-clap/blob/master/README.mdhttps://github.com/liuchengxu/vim-clap/blob/master/CHANGELOG.mdcode

相關文章
相關標籤/搜索