前面讲到Windows下基于FZF的模糊查找器,我们可以知道
fzf
是一个功能非常强大的基于Go实现的一个交互式的命令行搜索工具。基于FZF
实现的vim
插件,让我们在vim
中搜索更加高效。
一、安装
1. 使用 git
执行以下命令手动安装 fzf 和 fzf.vim
1 2 3 |
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf # 注意此处下载到vim插件目录 ~/.fzf/install git clone --depth 1 https://github.com/junegunn/fzf.vim.git ~/fzf.vim |
2. 使用 Vundle插件管理器 安装
1 2 |
Plugin 'junegunn/fzf', " 搜索工具 Plugin 'junegunn/fzf.vim' " 搜索工具 |
二、fzf命令
Command | List |
---|---|
Files [PATH] |
Files (similar to :FZF ) |
GFiles [OPTS] |
Git files (git ls-files ) |
GFiles? |
Git files (git status ) |
Buffers |
Open buffers |
Colors |
Color schemes |
Ag [PATTERN] |
ag search result (ALT-A to select all, ALT-D to deselect all) |
Lines [QUERY] |
Lines in loaded buffers |
BLines [QUERY] |
Lines in the current buffer |
Tags [QUERY] |
Tags in the project (ctags -R ) |
BTags [QUERY] |
Tags in the current buffer |
Marks |
Marks |
Windows |
Windows |
Locate PATTERN |
locate command output |
History |
v:oldfiles and open buffers |
History: |
Command history |
History/ |
Search history |
Snippets |
Snippets (UltiSnips) |
Commits |
Git commits (requires fugitive.vim) |
BCommits |
Git commits for the current buffer |
Commands |
Commands |
Maps |
Normal mode mappings |
Helptags |
Help tags <sup id="a1">1 |
Filetypes |
File types |
以上命令摘自fzf.vim,在普通模式下,使用:Command
调用命令。
三、配置fzf
在 fzf.vim 中有着非常详细的设置教程,这里仅列出我的配置信息:
1 2 3 4 5 6 7 8 |
nnoremap <silent> <Leader>C :Colors<CR> nnoremap <silent> <Leader>b :Buffers<CR> nnoremap <silent> <Leader>f :Files<CR> nnoremap <silent> <Leader>l :Lines<CR> nnoremap <silent> <Leader>ag :Ag <C-R><C-W><CR> nnoremap <silent> <Leader>AG :Ag <C-R><C-A><CR> xnoremap <silent> <Leader>ag y:Ag <C-R>"<CR> nnoremap <silent> <Leader>` :Marks<CR> |
四、使用 Ag 实现文本搜索
使用 Ag
首先需要安装the_silver_searcher,然后将以下配置添加到自己的vim配置文件中:
1 2 3 4 5 6 |
command! -bang -nargs=* Ag \ call fzf#vim#ag(<q-args>, \ <bang>0 ? fzf#vim#with_preview('up:60%') \ : fzf#vim#with_preview('right:50%:hidden', '?'), \ <bang>0) nnoremap <silent> <Leader>A :Ag<CR> |
将:Ag
命令绑定到<leader>A
上,这样就可以在Vim
内搜索项目内的文本了。
我的微信
扫一扫加我微信