⚡ Vim 集成 fzf/ag 基本配置和用法

🧩 Vim 集成 fzf/ag 基本配置和用法


1. 📚 fzf/ag 简介

fzf(Fuzzy Finder) 是一款交互式命令行模糊查找工具,适用于快速查找文件、命令、历史记录等。
ag(The Silver Searcher) 是一种类似 grep 的快速搜索工具,专为代码工程设计,搜索速度极快,并且支持正则表达式。
集成了 Ctags + fzf/Ag 的 Vim 可以快速浏览十万行以下的小型C语言项目或C++项目。
Ctags 相关的配置和用法详见
Vim 集成 Ctags 基本配置和用法


2. ⚙️ fzf/ag 安装流程

🐧 Linux 环境下安装

  1. 打开终端,输入命令安装 fzf 和 ag :

    sudo apt install fzf silversearcher-ag
    
  2. 验证是否安装成功:

    fzf --version
    ag --version
    

    若输出版本信息,说明安装成功。

  3. 打开 vimrc 配置文件,在 vim-plug 插件管理器中添加 fzf/ag 的插件(如果是Windows系统请将 ~/.vim/plugged 替换成 ~/vimfiles/plugged):

    call plug#begin('~/.vim/plugged')
    Plug 'junegunn/fzf'
    Plug 'junegunn/fzf.vim'
    Plug 'rking/ag.vim'
    call plug#end
    

    保存退出后重新打开 Vim ,执行 :PlugInstall 安装插件

🚃 Windows 环境下安装

  1. 打开 PowerShell 终端,输入并执行以下命令安装 Scoop 软件:

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
    iwr -useb get.scoop.sh | iex
    
  2. 继续在 PowerShell 终端输入并执行以下命令安装 fzf 和 ag :

    scoop install fzf
    scoop install ag
    

    scoop 默认会自动配置好环境变量,命令在终端里直接可用。

  3. 在 PowerShell 终端中输入并执行以下命令验证安装是否成功:

    fzf --version
    ag --version
    

    如果成功显示版本号说明已经安装成功


3. 🚗 基本使用方式

  1. 在项目根目录打开 Vim ,输入 :Files 指令,在弹出的窗口中输入文件名模糊匹配文件,通过 Ctrl + jCtrl + k 上下移动光标选择文件,按下 Enter 打开文件进行浏览。

  2. 浏览的时候,输入 :Ag 指令,在弹出的窗口中输入想要在项目中全局查找的变量名或函数名,通过 Ctrl + jCtrl + k 上下移动光标选择条目,按下 Enter 打开文件并跳转到变量名或函数名所在行


4. 🌟 Vim 集成配置与常用命令

🧾 vimrc 配置示例:

let $FZF_DEFAULT_COMMAND = 'ag -g ""'
let g:fzf_preview_window = ['right:50%', 'ctrl-/']
command! -nargs=? Ag call fzf#vim#ag(<q-args>, '', fzf#vim#with_preview(), <bang>0)

说明:

  • let $FZF_DEFAULT_COMMAND = ‘ag -g “”’:默认使用 ag 提供搜索结果给 fzf 。
  • let g:fzf_preview_window = [‘right:50%’, ‘ctrl-/’]:打开预览窗口,放在右边,大小为50%。
  • command! -bang -nargs=? Ag call fzf#vim#ag(, ‘’, fzf#vim#with_preview(), 0):定义 :Ag 命令,执行 :Ag 命令可以打开预览窗口。

🔰 fzf/ag 常用命令一览

命令功能说明
:Ag模糊匹配当前目录下的文件内容(相当于grep)
:Files模糊查找当前目录下的文件
:Buffers查找当前已打开的缓冲区文件
:Lines所有已打开文件的内容行模糊搜索
:BLines当前文件行搜索
:GFilesGit 跟踪文件搜索
:History历史命令查找
:CommandsVim 命令模糊搜索
:Maps映射快捷键查找

5. ⚠️ 注意事项

💥 :Ag 命令无法弹出窗口

在完成 fzf/ag 的安装和 Vim 插件的配置后,打开 Vim 输入 :Ag 命令,可能会出现无法弹出窗口的情况,同时 Vim 会提示以下信息

Usage: ':Ag {pattern}' (or just :Ag to search for the word under the cursor). See ':help :Ag' for more information.

这种情况可能是由于fzf插件加载的较慢导致这条命令:

command! -nargs=1 Ag call fzf#vim#ag(<q-args>, '', fzf#vim#with_preview(), <bang>0)

在fzf插件完成加载前就被执行了(没有生效)。

在 vimrc 文件中将这条命令改成以下形式(加1秒的延时),让 Vim 在 fzf 插件完成加载后再执行这条命令,就能解决这个问题了

function! DefineAgCommand(timer)
  command! -bang -nargs=? Ag call fzf#vim#ag(<q-args>, '', fzf#vim#with_preview(), <bang>0)
endfunction

if has('timers')
  call timer_start(1000, 'DefineAgCommand')
endif

📥 Scoop 安装问题

使用普通用户权限打开 PowerShell 安装 Scoop 即可,Windows 系统下用管理员权限的 PowerShell 安装 Scoop 可能会导致安装失败。


📚 参考资料:
fzf GitHub 项目地址
fzf.vim GitHub 项目地址
ag GitHub 项目地址
ag.vim GitHub 项目地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值