Я привык к iTerm2 (или Terminal.app для этого случая) на OS X. Но я хочу перейти на использование tmux (или screen, но проблема похожа на оба приложения).
Поэтому моя идея состоит в том, чтобы иметь одну вкладку iTerm с сеансом tmux, открытым с несколькими вкладками. Для перехода у меня есть базовая функция, которую мне нужно настроить на tmux: переключите вкладку 'n' с помощью cmd + n (например, Firefox, Chrome, сам iTerm2 и т. Д.)
Однако я не могу найти способ сопоставления клавиши cmd на клавиатуре Mac. Сначала я попытался реализовать cmd в качестве префиксного ключа, но безуспешно. Я пытался установить
set-option -g prefix M-a (hoping for Meta-a)
set-option -g prefix ^a (hoping for ^ to work)
но ничего не работает. Это возможно? Мне не нужно привязывать префикс к cmd, но я хочу иметь возможность изменять вкладки tmux с помощью cmd + n.
Спасибо
Ответы:
Вы хотите вызвать последовательность нажатий клавиш (сначала
Ctrl-b
, затем n в диапазоне от 0 до 9).Лучше всего использовать такую комбинацию клавиш, как Butler или Keyboard Maestro, чтобы сделать это для вас.
Используя Батлера :
Выберите + »Смарт-пункт» Клавиши , настройте горячую клавишу
Cmd-1
. НажмитеCtrl-B
, затем1
для нажатия клавиш . Настройте его так, чтобы он действовал только в Терминале (или iTerm). Он предупредит вас, что другим приложениям это может не понравиться, но вы уже это знаете.Использование клавиатуры Maestro :
Создайте новую группу слева, которая доступна только в Терминале (или iTerm).
Добавьте новый элемент, который запускается с помощью горячих клавиш триггера (
Cmd-1
), и добавьте два нажатия клавиш для его действий:Ctrl-B
и1
.Вы могли бы также хотеть взглянуть на эту тему - не использует,
Command
хотя, и не работал для меня, используя Терминал.Из документации по tmux :
Они не поддерживают третий ключ-модификатор.
источник
В iTerm2 вы можете сопоставить ярлыки с шестнадцатеричными кодами, которые отправляются в терминал. Перейти к настройкам iTerm2 -> Ключи. В глобальных сочетаниях клавиш нажмите + и добавьте желаемый ярлык, например, cmd + 1, который будет записан. Затем выберите «Отправить шестнадцатеричный код». В появившемся поле введите шестнадцатеричные коды, которые вы хотите отправить в tmux, разделенные пробелами. Ctrl-B равен 0x02, поэтому для «Ctrl-B 1» введите «0x02 0x31». Смотрите здесь для получения дополнительных шестнадцатеричных кодов: http://www.nthelp.com/ascii.htm
Я сопоставил Cmd с h, j, k, l для перемещения между панелями tmux, а Cmd с% и "для создания разбиений. Вероятно, я сделаю нечто подобное для перемещения между разделениями vim одним управляющим ключом.
источник
Специальные ярлыки могут быть сделаны с Terminal.app. Я только что узнал на днях, но это, возможно, было возможно до льва.
Зайдите в «Настройки»> «Настройки» и перейдите на вкладку «Клавиатура». Теперь вам нужно добавить новое сочетание клавиш, нажав на значок плюса под полем. Теперь вы хотите установить комбинацию клавиш «Отправляет строку в оболочку».
Пример: допустим, я хочу установить M-LeftArrow для отображения
prefix-p
(предыдущее окно).Теперь просто введите в
prefix-p
поле ввода, гдеprefix
находится то, что вы установили для tmux (я использую cntrl-a, чтобы окно отображалось\001p
). Обратите внимание, что если вы допустили ошибку, вместо фактического удаления будут вставлены удаляемые символы, поэтому нажмите кнопку «Удалить один символ», чтобы переместиться назад, если у вас возникнет ошибка.Специальные символы, которые я установил, чтобы облегчить жизнь:
Вы также можете изменить cntrl-что-нибудь и shift-что-нибудь, но помните, что это может помешать вашему $ EDITOR или другим программам, поэтому будьте осторожны с тем, какие специальные функции могут оказаться бесполезными.
Также обратите внимание, что я не мог понять, как дублировать эту функцию в iTerm2.
источник
Вы также можете рассмотреть встроенную (но очень экспериментальную) интеграцию, которую iTerm2 предлагает с tmux: http://code.google.com/p/iterm2/wiki/TmuxIntegration
Таким образом, когда вы нажимаете Cmd-D, чтобы разделить экран, iTerm2 разделит вкладку для вас. Это здорово, потому что разделение является родным, поэтому вы можете перетащить край в середине, чтобы заново отрегулировать ширину, или вы можете выбрать панель, нажав. То же самое для новых вкладок / окон (но ярлыки немного отличаются - иначе у вас не было бы возможности добавлять вкладки не-tmux).
Как и в случае с tmux, если вы отсоедините и снова подключите, все будет сохранено для вас.
Однако есть два предостережения: * это очень экспериментальная функция, и для меня это очень странно. * вам придется собрать tmux самостоятельно (используя архив где-то по ссылке выше).
-Крис
источник
cmd+D
разделяет панели iTerm2, а не tmux.tmux -CC
.Вы также можете посмотреть этот пост в блоге с подробными пояснениями по интеграции tmux / iterm: http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
источник