You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

fzf.vim创建带git log预览的Git分支命令时预览不刷新如何解决?

修复Neovim中FzfGBranches命令预览窗口不刷新的问题

你的问题出在错误使用了placeholder参数,fzf.vim中指定预览命令的正确方式是直接在options数组里添加--preview选项,同时要确保分支名提取逻辑可靠,让fzf能在选中项变化时重新执行预览命令。

修正后的配置代码如下:

command! -bang -nargs=0 FzfGBranches
            \ call fzf#vim#grep(
            \ "git branch -a", 1,
            \ fzf#vim#with_preview({
            \   'options': [
            \       '--prompt', '*Branches> ',
            \       '--bind', 'ctrl-d:page-down,ctrl-u:page-up',
            \       '--preview', 'echo {} | sed "s/^[* ]*//" | xargs git log --oneline --graph --date=short --color=always --pretty="format:%C(auto)%cd %h%d %s"'
            \   ]
            \ }), <bang>0)

关键修正点说明:

  1. 替换placeholder为--preview:placeholder不是fzf指定预览命令的参数,必须将预览逻辑放在options中的--preview选项内,这样fzf才会在选中项变化时触发预览命令刷新。
  2. 优化分支名提取逻辑:用sed "s/^[* ]*//"替代原来的反转切割逻辑,更可靠地去除分支行开头的*(当前分支标记)和空格,得到纯净的分支名称。
  3. 用xargs传递分支参数:确保处理后的分支名能正确传入git log命令,避免分支名包含空格等特殊字符导致命令执行失败。

配置完成后,再次调用FzfGBranches命令,上下移动选中不同分支时,右侧预览窗口会自动刷新显示对应分支的提交日志。

内容的提问来源于stack exchange,提问作者linrongbin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 19:08:29