Panel zmiany rozmiaru nie działa dla Tmux na Macu?

33

Po przeszukaniu doszedłem do wniosku, że ctrl + b (PREFIKS), a następnie ctrl + strzałka powinny zmienić rozmiar bieżącego panelu. Ale to nie działa. Czy coś mi brakuje?

Dzięki.

Biswanath
źródło
Do waszej strony dostosowałem szerokość za pomocą PREFIX: panel zmiany rozmiaru, ale wciąż zastanawiam się, dlaczego powyższe polecenie nie powinno działać.
Biswanath
powinien być na apple.stackexchange.com
Alex Leach

Odpowiedzi:

42

Prawdopodobnie twój terminal nie wysyła (wyraźnej) sekwencji po przytrzymaniu Controli naciśnięciu klawisza strzałki.

Spróbuj uruchomić cati wpisać w nim klucze (Control-C, aby wyjść). Prawdopodobnie przekonasz się, że (np.) UpI Control- Upoba generują tę samą sekwencję.

Aplikacja OS X Terminal

W swojej domyślnej konfiguracji aplikacja Terminal OS X wysyła sekwencję ^[[A(lub ^[OA) bez względu na to, czy wpiszesz Upczy Control- Up(także dowolną kombinację zi, Shifti Option).

Można jednak ponownie skonfigurować Terminal, aby wysyłał odpowiednie kody. Jest to trochę nużące, ale zazwyczaj musisz to zrobić tylko raz.

  1. Terminal > Preferencje…
  2. Karta najwyższego poziomu Ustawienia
  3. wybierz profil, który chcesz zmodyfikować
  4. klawiatura Zakładka
  5. kliknij przycisk plus, aby dodać nowe powiązanie

    • wybierz klawisz kursora
    • ustaw modyfikator na control
    • użyj Send Text:akcji
    • wpisz Escape(pojawi się jako \033), a następnie jeszcze [1;5jeden znak:
      • Adla Up,
      • Bdla Down,
      • Cdla Rightlub
      • D dla Left
    • kliknij OK, aby dodać powiązanie

Na przykład końcowa sekwencja dla Control- Uppowinna wyglądać tak \033[1;5A.

Sekwencje te są tymi, które generuje XTerm (szczegóły w dokumentacji ctlseqs ).

Powtórz ostatni krok dla pozostałych klawiszy strzałek.

iTerm 2

iTerm 2 domyślnie wysyła oczekiwaną sekwencję.

Chris Johnsen
źródło
Rzeczywiście, Ctrl + {klawisze strzałek} są mapowane do przełączania aplikacji. Nie wysyłają sekwencji.
Biswanath,
19
Próbowałem tego na waniliowej maszynie Mavericks (MBP retina pod koniec 2013 r.), Ale nie działało bez dezaktywacji wszystkich skrótów klawiszowych Ctrl + Strzałka w Preferencjach systemowych -> Klawiatura -> Skróty -> Kontrola misji. +1 za wskazówkę dotyczącą używania catdo wyświetlania zdarzeń na klawiaturze
Alex Leach
działa dobrze, dopóki nie uruchomię Tmux. Dostaję ^ [[1; 5A ^ [[1; 5B przed uruchomieniem tmux, ale ^ [OA ^ [OB w tmux.
nakhli
1
@ Sinbadsoft.com: Wygląda na to, że nie masz xterm-keyswłączonego dla tego okna tmux ; możesz chcieć set -gw xterm-keys on.
Chris Johnsen
działa idealnie dla mnie (el capitan).
mol
10

Przynajmniej w Mavericks i iTerm2 musisz przytrzymać Control, a następnie nacisnąć b(zamiast przytrzymywać), a następnie przytrzymać przycisk kierunkowy. Wysyła to prawie takie same sekwencje, jak przytrzymanie Control- bz przyciskiem kierunkowym, więc działa.

Pamiętaj też, aby przejść do ustawień klawiatury i na karcie skrótów wyłączyć kontrolę misji i takie skróty klawiaturowe, które możesz mieć Controlplus klawisz kierunkowy.

quinnirill
źródło
7
dzięki! zmiana powiązań kontroli misji / okien aplikacji w
Skrótach
7

Możesz użyć klawisza meta zamiast klawisza Control w kombinacjach ctrl-↑ i ctrl- ↓. W terminalu OSX domyślnym meta kluczem jest klawisz Escape. Na przykład, aby zwiększyć rozmiar panelu, wpisz ctrl-b esc- ↑.

Uważam, że klawisz Escape jest trudny do osiągnięcia, więc zamiast tego używam klawisza opcji jako klawisza meta. W Terminal.app możesz to zmienić, wybierając Terminal> Preferencje> Profile> Klawiatura: zaznacz „Użyj opcji jako klawisza meta”.

Teraz możesz wpisać opcję ctrl-b- ↑, aby zwiększyć rozmiar lub opcję ctrl-b- ↓, aby zmniejszyć rozmiar i nie musisz ponownie przypisywać klawiszy kontrolnych misji.

Yothenberg
źródło
Użycie Escape było tylko rozwiązaniem, ponieważ domyślnie przytrzymanie Ctr + Arrow na moim MacOS przenosi na inny pulpit.
klimat