如何解决fzf的CTRL-t键绑定问题?

时间:2018-03-10 09:16:16

标签: command-line terminal homebrew fzf

我最近发现了一个名为fzf的命令行工具。我按照说明安装它,它确实有效,除了 CTRL - T 键绑定。虽然,我根据他们的指示安装了特殊的东西和键绑定,我也尝试安装从git repo下载的fzf而不是通过homebrew,所有的 CTRL - T < / kbd>密钥绑定仍然是交换最后两个字符。

我发现this对此进行了讨论,但所提供的答案都没有对我有用。

编辑:你可以在第一个视频here中看到它想要实现的目标。 编辑2:我正在使用MacO终端。

4 个答案:

答案 0 :(得分:2)

如果从存储库中克隆fzf,它将包含一个名为fzf/shell/key-bindings.zsh的文件,该文件引用

fzf-file-widget() {
  LBUFFER="${LBUFFER}${__fsel}"
  local ret=$?
  zle redisplay
  typeset -f zle-line-init >/dev/null && zle-line-init
  return $ret
}
zle -N fzf-file-widget
bindkey "^T" fzf-file-widget

Control-T键绑定。这通常来自您的.zshrc

[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

应包含.fzf.zsh中的引用:

source "$HOME/.fzf/shell/key-bindings.zsh"

如果您的键绑定不起作用,那么您的键绑定可能会被您的zshrc覆盖,或者您的zshrc可能无法调用。

答案 1 :(得分:0)

我设法使CTRL-t键组合按需要工作。我错过了一步。

在使用/usr/local/opt/fzf/install安装有用的键绑定并模糊完成之后,我用fzf.bash手动更新了[ -f ~/.fzf.bash ] && source ~/.fzf.bash。重新启动终端后,它现在可以工作了。

编辑:另外,此行需要添加到您的.bash_profile或.bashrc中:source ~/.fzf.bash

答案 2 :(得分:0)

我注意到set -o vi启用了“ vi模式”时,CTRL-T不起作用(以bash表示)。

答案 3 :(得分:0)

我将以下脚本放在我的 .zshrc 中并使用 source ~/.zshrc

if [ -x "$(command -v fzf)"  ]
then
    source /usr/share/fzf/key-bindings.zsh
fi

现在按键绑定(CTRL-T、CTRL-R 和 ALT-C)对我有用。

how to enable hotkeys for fzf获得上述脚本

说明

您在 /usr/share/fzf 或更深的几个目录中有 key-bindings.zsh。 如果安装了 fzf,以上脚本仅提供 key-bindings.zsh 源。

其余的工作是 key-bindings.zsh 的一部分,坦率地说,我没有打扰 明白。

操作系统:Manjaro GNU-Linux