FZF - 搜索目标文件夹

问题描述

我已经使用 fzf 一段时间了,发现它真的很棒,但是我想让它做一件事,但我认为我没有在谷歌上搜索正确的词。

我在 neovim 终端上将它与 zsh 一起使用,我想要做的是让它只搜索我输入的目标目录。

$ vi folder_name/ # Ctrl + T here

目前,当我点击 Ctrl+T 时,它会搜索当前目录,而不仅仅是 folder_name 的内容。

通过 Plug 安装并在 .zshrc 中安装:

    source ~/.fzf.zsh
    export FZF_DEFAULT_COMMAND='ag --hidden --ignore .git -l -g ""'
    export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"

我尝试删除导出行,因为我认为这可能是它的默认行为,但没有骰子。

我怎样才能做到这一点?

解决方法

我对 Linux 不太熟悉,但是 ctrl-t 似乎只是在命令行中插入结果。与似乎从缓冲区生成前缀并将其作为路径传递给 find 命令的完成函数进行比较。

尝试使用完成功能或将它们用作指南

,

我想不出内置的方法来做到这一点,但我们可以在终端中实现任何事情!

首先想到的是创建一个函数来自动执行此操作,并通过添加键绑定使其更快。

使用 zsh,您可以设置自己的 CTRL 键绑定。例如,我建议使用 CTRL - f 。我认为这不应该与任何其他绑定发生冲突。我们可以使用 bindkey 命令调用我们的函数。

将这些项目放入您的 .zshrc 中以使其可用。

# Set CTRL + f to call our function
bindkey -s '^f' 'FzfViDir^M'

function FzfViDir()
{
  # Use fzf to get into the right folder. The ls command sends folder names to fzf
  cd $(ls -d */ | fzf)

  # Now fzf will only search the directory you have chosen
  vi $(fzf)
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...