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 的安装很简单:

1
2
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

完成之后就可以安装插件了,在这里只演示安装 fzf 的插件,在 home 目录下新建一个 .vimrc 文件,然后在文件中填入以下内容:

1
2
3
4
5
6
call plug#begin('~/.vim/plugged')

Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

call plug#end()

使用 :PlugInstall 对进行安装,如下表示安装完成。

2. 使用

为了更好的使用 fzf 插件在使用之前,还需要做一个简单的配置,为了在打开文件后,能够准确的找到工作目录所在,需要在 .vimrc 中加上如下配置:

1
2
3
4
5
6
7
8
set autochdir # 自动切换工作目录

call plug#begin('~/.vim/plugged')

Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

call plug#end()

vim 中的命令与命令行稍微有点差别,对 fzf 的使用做了一些简单的封装,这样就不用做更多的配置。

核心的命令其实就一个 :Files [path]

使用这个命令之后,就会把目标目录下所有的文件(包括子目录)以一个小窗口的形式展现出来,而且带预览功能。

同样使用 CTRL-J 和 CTRL-K 对文件进行选择,直接对文件名称进行回车会在当前窗口窗口打开文件,可以使用 CTRL-T 以新 tab 的形式打开文件,CTRL-X 以水平分屏的形式打开文件,CTRL-V 垂直分屏的形式打开文件。

对于已经打开的文件,可以使用 :Buffers 来进行查看,操作和打开文件的方法与 :Files 命令一样。

甚至还与 git 做了一定程度的结合,使用 :GFiles 来查看 git 文件,相当于 git ls-files。使用 :GFiles? 查看 git 状态,相当于 git status

还可以使用 :Colors 来为 vim 切换主题。

有了上面的这些功能之后,vim 在操作文件上面就很强了,算是补足了 vim 的一个弱点。

上面的功能基本已经够用了,fzf 的 vim 插件也还有不少高阶的用法,感兴趣的可以自行查看文档。

文 / Rayjun

REF

[1] https://github.com/junegunn/fzf.vim

© 2020 Rayjun    PowerBy Hexo