Вопрос или проблема
Я использую оболочку zsh, и когда я ввожу nvim **
, я ожидаю увидеть вызов fzf, но вместо этого вижу, как nvim открывает либо первый доступный файл в текущем каталоге, либо первую директорию в netrw.
Вот моя конфигурация zshrc.
Я пробовал использовать export FZF_COMPLETION_TRIGGER='~~'
, чтобы посмотреть, поможет ли изменение триггера, но это не помогает.
Что я делаю не так?
.
Ответ или решение
Проблема, с которой вы столкнулись, связана с недостаточной конфигурацией вашего zsh-окружения для правильной работы триггера fzf с использованием **
(двойной звездочки) как аргумента для команды. Давайте рассмотрим это более подробно и предложим возможные решения.
Понимание проблемы
Когда вы вводите команду nvim **
в zsh, предполагается, что zsh должен раскрыть все файлы и каталоги в текущем каталоге и их подкаталогах. Однако вместо этого, как вы описали, вы видите открытие первого файла или каталога. Это может происходить по нескольким причинам:
- Конфликт с настройками zsh: Ваша оболочка может быть настроена так, что расширение
**
не обрабатывается должным образом. - Функция fzf не интегрирована: Возможно, функция, отвечающая за интеграцию fzf с zsh, не настроена или активирована корректно.
- Отсутствие необходимого плагина или зависимости: Если вы используете менеджер плагинов, такой как zplug или oh-my-zsh, убедитесь, что все требуемые плагины и их зависимости установлены.
Решение проблемы
1. Проверьте настройки globbing
Чтобы убедиться, что злая пожарная команда **
работает правильно, вам нужно активировать globbing. Добавьте следующее в ваш файл конфигурации .zshrc
:
setopt extended_glob
Эта команда включает расширенный globbing, позволяя использовать **
для обозначения всех файлов и подкаталогов.
2. Настройка fzf
Убедитесь, что fzf установлен и правильно интегрирован с zsh. Обычно это включает добавление следующих строк в .zshrc
:
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
Это гарантирует, что функции fzf загружаются при запуске вашей оболочки.
3. Изменение триггера
Если вы хотите использовать другой триггер, вы можете попробовать следующее:
export FZF_COMPLETION_TRIGGER='~~'
Это действительно может помочь, если **
не работает так, как вы ожидаете, но при этом важно убедиться, что этот триггер также поддерживается вашими настройками.
4. Убедитесь, что у вас правильная версия
Также проверьте, что у вас установлена последняя версия fzf. Вы можете обновить fzf с помощью команды:
git -C ~/.fzf pull
После обновления не забудьте перезагрузить вашу zsh-конфигурацию:
source ~/.zshrc
Перезапуск терминала
После внесения этих изменений, обязательно перезапустите терминал или выполните команду source ~/.zshrc
, чтобы обновить ваши настройки.
Заключение
Проблема с тем, что fzf не срабатывает при вводе команды nvim **
в оболочке zsh, может быть исправлена путем проверки и изменения конфигурации globbing с дополнительной настройкой интеграции fzf. Убедитесь, что все настройки выполнены правильно и версия fzf актуальна. Если проблема не решится, возможно, потребуется обратиться к документации fzf или zsh для дальнейшей настройки вашей среды.