Панель изменения размера не работает для Tmux на Mac?

33

После поиска я решил, что Ctrl + B (PREFIX), а затем Ctrl + стрелка должны изменить размер текущей панели. Но это не работает. Я что-то пропустил?

Спасибо.

Biswanath
источник
К вашему сведению, я отрегулировал ширину с помощью PREFIX: resize-pane, но все еще задаюсь вопросом, почему вышеупомянутая команда не должна работать.
Бисванат
должно быть на apple.stackexchange.com
Алекс Лич

Ответы:

42

Возможно, ваш терминал не отправляет (отдельную) последовательность, когда вы держите Controlи нажимаете клавишу со стрелкой.

Попробуйте запустить catи ввести в него ключи (Control-C, чтобы выйти). Вы, вероятно, обнаружите, что (например) Upи Control- Upоба генерируют одинаковую последовательность.

Приложение OS X Terminal

В конфигурации по умолчанию приложение OS X Terminal отправляет последовательность ^[[A(или ^[OA), вводите ли вы Upили Control- Up(также любую комбинацию с Shiftи Optionтоже).

Однако вы можете перенастроить Терминал для отправки соответствующих кодов. Это немного утомительно, но обычно вам нужно сделать это только один раз.

  1. Терминал > Настройки ...
  2. Настройки вкладки верхнего уровня
  3. выберите профиль, который вы хотите изменить
  4. Вкладка клавиатуры
  5. нажмите кнопку «плюс», чтобы добавить новую привязку

    • выберите курсор
    • установите модификатор на control
    • использовать Send Text:действие
    • тип Escape(будет отображаться как \033), за которым следует еще [1;5один символ:
      • Aдля Up,
      • Bдля Down,
      • Cдля Rightили
      • D для Left
    • нажмите кнопку ОК, чтобы добавить привязку

Например, окончательная последовательность для Control- Upдолжна выглядеть примерно так \033[1;5A.

Эти последовательности генерируются XTerm (подробности см. В документации по ctlseqs ).

Повторите последний шаг для других клавиш со стрелками.

iTerm 2

iTerm 2 отправляет ожидаемую последовательность по умолчанию.

Крис Джонсен
источник
Действительно, Ctrl + {клавиши со стрелками} отображаются для переключения приложения. Они не отправляют последовательность.
Бисванат
19
Я попробовал это на ванильной машине Mavericks (сетчатка MBP в конце 2013 года), но это не сработало без деактивации всех сочетаний клавиш Ctrl + Arrow в Системных настройках -> Клавиатура -> Сочетания клавиш -> Управление полетом. +1 за подсказку по использованию catдля просмотра событий клавиатуры
Алекс Лич
работает нормально, пока я не начну tmux. Я получаю ^ [[1; 5A ^ [[1; 5B до запуска tmux, но ^ [OA ^ [OB в tmux.
Нахли
1
@ Sinbadsoft.com: похоже, вы не xterm-keysвключили это окно tmux ; Вы можете хотеть set -gw xterm-keys on.
Крис Джонсен,
отлично работает для меня (Эль-Капитан).
Лин
10

По крайней мере, на Mavericks и iTerm2 вы должны удерживать Control, затем нажать b(вместо удержания), затем удерживать нажатой кнопку направления. Это посылает почти те же последовательности, что и нажатие Control- bс помощью кнопки со стрелкой, чтобы она работала.

Кроме того, не забудьте перейти к настройкам клавиатуры и на вкладке «Ярлыки» отключить все элементы управления полетом и такие сочетания клавиш, которые вы можете использовать, Controlплюс клавишу со стрелкой.

quinnirill
источник
7
Благодарность! Изменение привязки окна управления
полетами
7

Вы можете использовать мета-ключ вместо управляющего ключа в комбинациях ctrl- c и ctrl- ↓. В OSX Terminal мета-ключ по умолчанию - это escape-ключ. Например, чтобы увеличить размер панели, нажмите ctrl-b esc- ↑.

Я нахожу, что клавиша Escape труднодоступна, поэтому вместо нее я использую ключ опции. В Terminal.app вы можете изменить его, перейдя в «Терминал»> «Настройки»> «Профили»> «Клавиатура»: установите флажок «Использовать параметр как мета-ключ».

Теперь вы можете набрать ctrl-b option- ↑, чтобы увеличить размер, или ctrl-b option- ↓, чтобы уменьшить размер, и вам не нужно переназначать клавиши управления миссией.

yothenberg
источник
Использование Escape было единственным решением, так как удерживание Ctr + Arrow по умолчанию на моем MacOS переключает на другой рабочий стол.
Климат