Я хочу привязать команду к комбинации клавиш в zsh, которая отличается от OSX и Linux. Мое текущее состояние:В какой операционной системе работает мой терминал?
if [[ "$(uname)" == "Darwin" ]]; then
bindkey "^e" some-command # Ctrl+E for OSX
else
bindkey "^[e" some-command # Alt+E for Linux
fi
Однако это не работает для соединений ssh между этими двумя системами. Так что на самом деле, я не хочу проверять, в какой операционной системе находится моя оболочка, но скорее в которой работает мой терминал. Есть ли способ получить эту информацию?
Пожалуйста, не сосредотачивайтесь на деталях ключей, используемых в привязке. Это не имеет значения в данный момент :)
Edit: Чтобы сделать вещи яснее:
- Терминал является штуковина, вы вводите свои команды в, как Iterm2, Guake или Xterm
- Скорлупа штуковина, которая принимает и выполняет команды, как Bash, Zsh или Fish
'arch' только показывает информацию о системе, в которой запущена ** shell **. Кроме того, она доступна только в OSX (что было бы решением проблемы, если она могла быть вызвана из системы linux) но он не может). – eugenk
fwiw, ["' arch' "существует в версиях Linux, которые я использую] (https://wiki.archlinux.org/index.php/man_page). –
О, тогда я не увидел нужный пакет в результатах поиска AUR. По крайней мере, он недоступен по умолчанию на моей машине ArchLinux. – eugenk