VIM FZF 安裝和使用

在 Vim 中安装和使用 fzf 进行文件、函数、变量、宏定义的模糊匹配

以下是详细步骤:


1. 安装 fzf 和 fzf.vim 插件

1.1 安装 fzf 工具

fzf 是一个命令行模糊查找工具,必须先安装它。根据你的操作系统选择安装方式:

  • macOS:

    bash 复制代码
    brew install fzf
    $(brew --prefix)/opt/fzf/install
  • Linux (Debian/Ubuntu):

    bash 复制代码
    sudo apt update
    sudo apt install fzf
  • Windows:

    使用 Scoop 或 Chocolatey:

    bash 复制代码
    scoop install fzf
    choco install fzf
  • 从源码安装(适用于所有平台)

    bash 复制代码
    git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    ~/.fzf/install
1.2 安装 fzf.vim 插件

fzf.vim 是 fzf 的 Vim 集成插件,提供文件、函数、变量等模糊匹配功能。

使用 vim-plug 安装:

.vimrc 中添加:

vim 复制代码
call plug#begin('~/.vim/plugged')
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
call plug#end()

然后在 Vim 中运行:

vim 复制代码
:PlugInstall

使用 Vundle 安装:

.vimrc 中添加:

vim 复制代码
call vundle#begin()
Plugin 'junegunn/fzf'
Plugin 'junegunn/fzf.vim'
call vundle#end()

然后在 Vim 中运行:

vim 复制代码
:PluginInstall

2. 使用 fzf 在 Vim 中模糊匹配

2.1 文件模糊匹配
  • 使用 :Files 命令打开当前目录的文件列表并进行模糊搜索。
  • 输入部分文件名,fzf 会实时显示匹配结果。
  • 按回车打开选中的文件。

快捷键绑定:

.vimrc 中添加快捷键:

vim 复制代码
nmap  :Files

按下 `` 即可快速启动文件搜索。


2.2 函数、变量、宏定义的模糊匹配

fzf 支持通过 ctags 文件进行代码符号(如函数、变量、宏定义)的模糊搜索。

步骤:
  1. 安装 ctags 工具(生成代码符号索引):

    • macOS:

      bash 复制代码
      brew install ctags
    • Linux (Debian/Ubuntu):

      bash 复制代码
      sudo apt install exuberant-ctags
    • Windows:
      使用 Scoop 或 Chocolatey 安装 Universal Ctags。

  2. 生成 tags 文件:

    在项目根目录运行以下命令,生成包含函数、变量等符号的 tags 文件:

    bash 复制代码
    ctags -R .
  3. 使用 :Tags 命令查找符号:

    • 在 Vim 中运行:

      vim 复制代码
      :Tags
    • 输入部分函数或变量名称进行模糊搜索,按回车跳转到定义位置。

  4. 快捷键绑定:

    .vimrc 中添加:

    vim 复制代码
    nmap  :Tags

    按下 `` 可快速启动符号搜索。


2.3 全局内容搜索(基于 ripgrep 或 ag)

如果需要查找代码中所有包含某个关键词的地方,可以结合 ripgrepag 工具使用 :Rg 命令。

安装 ripgrep 或 ag:
  • ripgrep (推荐):

    bash 复制代码
    sudo apt install ripgrep    # Linux (Debian/Ubuntu)
    brew install ripgrep        # macOS
  • ag (The Silver Searcher):

    bash 复制代码
    sudo apt install silversearcher-ag    # Linux (Debian/Ubuntu)
    brew install the_silver_searcher      # macOS
使用 :Rg 命令全局搜索:

在项目中运行以下命令:

vim 复制代码
:Rg 

例如:

vim 复制代码
:Rg my_function_name

这会列出所有包含 my_function_name 的代码位置,选择结果后按回车跳转。

快捷键绑定:

.vimrc 中添加:

vim 复制代码
nmap  :Rg

按下 `` 可快速启动全局内容搜索。


3. 配置和优化

3.1 自定义 FZF 默认命令(提高效率)

默认情况下,fzf 使用 find 查找文件。如果需要更快的查找工具,可以改为 fdag

.bashrc.zshrc 中添加:

bash 复制代码
export FZF_DEFAULT_COMMAND="fd --type f --hidden --exclude .git"

或者:

bash 复制代码
export FZF_DEFAULT_COMMAND="ag --hidden --ignore .git -g ''"
3.2 启用文件预览功能

.vimrc 中配置预览窗口:

vim 复制代码
let g:fzf_preview_window = ['right:50%', 'ctrl-/']

这样,在搜索时可以预览选中文件的内容。


4. 总结常用命令

命令 功能描述
:Files 模糊查找当前目录中的文件
:Buffers 模糊查找当前打开的缓冲区
:Tags 模糊查找代码中的函数、变量或宏定义(需 ctags)
:Rg 全局内容搜索(需 ripgrep 或 ag 支持)
`` 快速启动文件查找(需绑定快捷键)
`` 快速启动符号查找(需绑定快捷键)

通过以上配置,你可以高效地使用 fzf 在 Vim 中进行文件、函数、变量和宏定义的模糊匹配。

Citations:

1\] https://blog.csdn.net/qq_46039512/article/details/137696023 \[2\] https://blog.csdn.net/weixin_45696455/article/details/137143350 \[3\] https://juejin.cn/post/6905741816205672456 \[4\] https://blog.csdn.net/yuhan61659/article/details/82712760 \[5\] https://blog.csdn.net/KALIOUWEN/article/details/139264314 \[6\] https://www.zhihu.com/question/26248191/answer/2680677733 \[7\] https://keelii.com/2018/08/13/fuzzy-finder-full-guide \[8\] https://github.com/solomonxie/solomonxie.github.io/issues/25

相关推荐
yueyuexiaokeai119 小时前
linux kernel常用函数整理
linux·c语言
郝亚军20 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu
Konwledging21 小时前
kernel-devel_kernel-headers_libmodules
linux
Web极客码21 小时前
CentOS 7.x如何快速升级到CentOS 7.9
linux·运维·centos
一位赵21 小时前
小练2 选择题
linux·运维·windows
代码游侠1 天前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
Lw老王要学习1 天前
CentOS 7.9达梦数据库安装全流程解析
linux·运维·数据库·centos·达梦
CRUD酱1 天前
CentOS的yum仓库失效问题解决(换镜像源)
linux·运维·服务器·centos
zly35001 天前
VMware vCenter Converter Standalone 转换Linux系统,出现两个磁盘的处理
linux·运维·服务器
Albert Edison1 天前
【Python】函数
java·linux·python·pip