0

我已经使用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"

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

我怎样才能做到这一点?

4

2 回答 2

0

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

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

使用 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)
}
于 2021-02-19T17:08:45.750 回答
0

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

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

于 2021-02-11T02:23:35.263 回答