Как я могу использовать 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».

  • Обнаружить, когда Zsh запущен в подоболочке другой оболочки
  • Как настроить .zshrc для specfic os
  • вложенная подстановка процесса, за которой следует pipe: «дескриптор файлового файла»
  • Что делает `zstyle`?
  • Как избежать разбора файлов / etc / *
  • Как сделать короткие строки sh
  • Что делает% \ / do (расширение командной строки zsh)?
  • Что вызывает это поведение при определении функции с именем ':'
  • zsh находится в / usr / bin, но также в / bin, в чем разница?
  • изменение разделов слова zsh
  • эквивалент часов в zsh
  • Linux и Unix - лучшая ОС в мире.