Это должно сработать:
function run_info() {
# Prepend "info" to the command line and run it.
BUFFER="info $BUFFER"
zle accept-line
}
# Define a widget called "run_info", mapped to our function above.
zle -N run_info
# Bind it to ESC-i.
bindkey "^[i" run_info
Просто вставьте это в оболочку, чтобы попробовать, и добавьте в свой .zshrc для постоянного эффекта.
Перефразируя код: общая идея состоит в том, что мы сначала определяем виджет с именем «run_info», реализованный с помощью функции с тем же именем. Он берет буфер командной строки и добавляет «info» в начало. Затем он принимает командную строку (аналогично нажатию Enter ). Наконец, виджет сопоставляется с сочетанием клавиш.
Вы можете прочитать справочную страницу zshzle (1) для получения дополнительной информации о том, как это работает.