7

Можно связать Command Key из Mac OS X в Zsh? Я не могу найти никакой информации об этом.

2 ответа2

9

Если вы используете iTerm2, вы можете. Сначала настройте горячие клавиши для отправки ваших пользовательских кодов:

И тогда вы можете связать их, поместив в ваш .zshrc:

bindkey '^[begin' beginning-of-line
bindkey '^[end' end-of-line
2

Да, но это не так просто, как вы могли бы надеяться.

Прежде всего, Mac OS не передает управляющую последовательность приложениям при нажатии комбинаций клавиш. Вместо этого приложения предлагают функции для ОС, которые могут быть выполнены через Apple Events. Привязка сочетаний клавиш к определенному яблочному событию происходит на уровне ОС.

Лучшее решение, которое я могу придумать, будет следующим:

  1. Напишите AppleScript, который делает все, что вы хотели; используйте команду do shell script для выполнения команд оболочки - или напишите сценарий оболочки, если это предпочтительнее. В любом случае, этот подход будет открывать новое окно терминала для каждого запуска команды.

  2. В качестве альтернативы, выясните последовательность нажатий клавиш, которая будет генерировать желаемое поведение (например, вы должны иметь возможность набирать "top" для запуска top в текущем окне оболочки).

  3. Используйте Automator для создания службы, которая либо запускает AppleScript (или сценарий оболочки, либо что-либо еще), либо печатает нажатия клавиш. Назначьте эту услугу терминалу и назначьте ей сочетание клавиш. Это руководство проведет вас через этот процесс:http://www.makeuseof.com/tag/how-to-create-your-own-services-menus-mac/

Подход 1 несовершенен, потому что вы не можете запустить его в текущем сеансе оболочки окна. Подход 2 несовершенен, потому что он даст нежелательные результаты, когда в активном сеансе оболочки выполняется что-то кроме zsh.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .