Как решить проблему связывания клавиш CTRL-t для fzf?
Недавно я нашел этот инструмент командной строки под названием fzf. Я установил его в соответствии с инструкциями, и он работает, за исключением привязки клавиш CTRL-T. Несмотря на то, что я установил специальный материал с привязками клавиш в соответствии с их инструкциями, а также попытался установить fzf, загруженный из репозитория git, а не через homebrew, все привязки клавиш CTRL-T, тем не менее, меняются местами последние два персонажи.
Я нашел это обсуждение по этому поводу, но ни один из предложенных ответов не работал для меня.
изменить: вы можете увидеть это в первом видео здесь, что я хочу достичь. редактировать 2: я использую терминал MacOs.
6 ответов
я использую
zsh
с
Oh My Zsh
на Mac.
Если я поставлю раньше в настройках плагина в
.zshrc
как
plugins=(... fzf ... vi-mode ...)
Ctrl-t
не работает показ
^T
.
Ctrl-r
тоже не работает.
Но если
fzf
идет после
vi-mode
как
plugins=(... vi-mode ... fzf ...)
проблем не возникает.
Если вы клонируете 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.
Если вы используете zsh-vi-mode, замените эту строку
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
с этим
zvm_after_init_commands+=('[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh')
zsh-vi-mode GitHubСо страницы
Я поместил приведенный ниже сценарий в свой .zshrc и получил его, используя
source ~/.zshrc
if [ -x "$(command -v fzf)" ]
then
source /usr/share/fzf/key-bindings.zsh
fi
и теперь привязки клавиш (CTRL-T, CTRL-R и ALT-C) работают для меня.
получил приведенный выше скрипт из того, как включить горячие клавиши для fzf
объяснение
у вас есть внутри / usr / share / fzf или несколько каталогов глубже. Вышеупомянутые скрипты исходят только в том случае, если установлен fzf.
остальная часть работы является частью
ОС : Manjaro GNU-Linux
Я заметил, что CTRL-T не работает (в bash), когда у меня включен режим "vi" set -o vi
,
Мне удалось заставить комбинацию клавиш CTRL-t работать как нужно. Был один шаг, который я пропустил.
После установки полезных сочетаний клавиш и нечеткого завершения с /usr/local/opt/fzf/install
Я обновил fzf.bash
вручную с [ -f ~/.fzf.bash ] && source ~/.fzf.bash
, После перезапуска Терминала он теперь работает.
Изменить: Кроме того, эта строка должна быть добавлена в ваш.bash_profile или.bashrc: source ~/.fzf.bash
,