Как я могу использовать bindkey для запуска скрипта?

В оболочке Z, как я могу использовать bindkey для привязки последовательности клавиш к скрипту?

2 Solutions collect form web for “Как я могу использовать bindkey для запуска скрипта?”

Вы можете определить виджет, который вызывает ваш скрипт:

my-script_widget() my-script its args zle -N my-script_widget bindkey '\ej' my-script_widget 

Но почему вы хотите назвать свой скрипт прямо из zle?

Если он отображает что-либо, это испортит дисплей. Если вы хотите, чтобы его вывод отображался как другие сообщения виджетов, вы можете сделать следующее:

 my-script_widget() zle -M "$(my-script its args)" 

Или если вы хотите, чтобы результат был вставлен в курсор:

 my-script_widget() LBUFFER+=$(my-script its args) 

Я думаю, вам не нужен виджет для этого:

 bindkey -s '\eb' '/path/to/script.sh\n' 

Из zsh docs :

Как и команды ZLE, последовательности клавиш могут быть привязаны к другим строкам, используя «bindkey -s».

  • Использование расширения параметра для создания списка аргументов для `mkdir -p`
  • Как отслеживать разбор и расширение параметров?
  • Об относительных достоинствах `` $ @ "` и `" $ @ "`
  • zsh показывает мое имя странно
  • Почему модификаторы zsh precommand перестают принимать аргументы при цитировании?
  • Обнаружить, когда Zsh запущен в подоболочке другой оболочки
  • zsh-newuser-install не работает
  • Получить полный путь к текущему загрузочному файлу zsh (например, zshrc или zshenv)
  • эквивалент часов в zsh
  • Отображение расширения скобы ZSH
  • Возможно ли прочитать содержимое файла, который был получен с помощью интерактивной оболочки?
  • Linux и Unix - лучшая ОС в мире.