Vim搜索神器fzf
在上一篇文章中,介绍了命令行神器 fzf 的使用,这个工具不止能在命令行使用,还可以在 vim 中使用。
vim 编辑器的功能很强大,但是在项目的文件管理方面却有点弱,缺乏有效的文件搜索功能,这点与 emacs 比起来就差太多了。
但是 fzf 插件能够帮助 vim 补足一下短板。
💡本文基于 macOS Big Sur 11.0.1,macVim8.2
1. 安装
vim 的安装不再赘述,使用 Homebrew 或者直接下载安装包进行安装。
在安装 fzf 之前,需要先安装一下 vim 的插件管理工具,当前比较主流的管理工具有 Vundle 以及 vim-plug,这里我们使用的是后者。
vim-plug 的安装很简单:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
完成之后就可以安装插件了,在这里只演示安装 fzf 的插件,在 home 目录下新建一个 .vimrc 文件,然后在文件中填入以下内容:
call plug#begin('~/.vim/plugged')
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
call plug#end()
使用 :PlugInstall 对进行安装,如下表示安装完成。

2. 使用
为了更好的使用 fzf 插件在使用之前,还需要做一个简单的配置,为了在打开文件后,能够准确的找到工作目录所在,需要在 .vimrc 中加上如下配置:
set autochdir # 自动切换工作目录
call plug#begin('~/.vim/plugged')
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
call plug#end()
vim 中的命令与命令行稍微有点差别,对 fzf 的使用做了一些简单的封装,这样就不用做更多的配置。
核心的命令其实就一个
使用这个命令之后,就会把目标目录下所有的文件(包括子目录)以一个小窗口的形式展现出来,而且带预览功能。

同样使用 CTRL-J 和 CTRL-K 对文件进行选择,直接对文件名称进行回车会在当前窗口窗口打开文件,可以使用 CTRL-T 以新 tab 的形式打开文件,CTRL-X 以水平分屏的形式打开文件,CTRL-V 垂直分屏的形式打开文件。
对于已经打开的文件,可以使用 来进行查看,操作和打开文件的方法与 :Files 命令一样。
甚至还与 git 做了一定程度的结合,使用 来查看 git 文件,相当于 。使用 查看 git 状态,相当于 。
还可以使用 来为 vim 切换主题。
有了上面的这些功能之后,vim 在操作文件上面就很强了,算是补足了 vim 的一个弱点。
上面的功能基本已经够用了,fzf 的 vim 插件也还有不少高阶的用法,感兴趣的可以自行查看文档。
本文首发于微信公众号
