Jak zrobić klawisze Ctrl + lewy / prawy klawisz, aby poruszać się po całym słowie w Tmux?

100

Zarówno w Zsh, jak i Bash, ctrl + strzałki pozwalają mi przesuwać pozycję, w której piszę całym słowem, ale to nie działa w tmux, co jest problemem, ponieważ obecnie uruchamiam ją automatycznie za każdym razem, gdy otwieram powłokę .

Jak mogę to naprawić?

Llamageddon
źródło

Odpowiedzi:

130
  1. Edytuj ~/.tmux.confi dodaj linie:

    set-window-option -g xterm-keys on
    
  2. Jeśli nie chcesz, aby było to na stałe, wykonaj:

    C-b :set-window-option xterm-keys on
    
  3. Załaduj ponownie swoją konfigurację w tmux, wykonując:

    C-b :source-file ~/.tmux.conf
    

Więcej informacji tutaj :

sgzmd
źródło
2
Dziwne: Działa to tylko dla mnie, jeśli ponownie załaduję plik ~ / .tmux.conf z tmux lub ustawię akcję w: -prompt tmux, nie początkowo po otwarciu tmux. Wszelkie pomysły, co może być problemem?
AME
@AME zamknij wszystkie sesje tmux, a następnie spróbuj ponownie.
Nathan
Jeśli przeładowanie konfiguracji nie rozwiąże problemu (tak jest w moim przypadku), wypróbuj nową sesję. Być może musisz zabić bieżącą sesję i utworzyć nową. Inną opcją, aby efekt
zadziałał
To mi w większości działało. Zastanawiam się, dlaczego domyślnie nie jest włączone?
inetknght
Zabicie sesji lub cokolwiek set-window-option -g xterm-keys onjeszcze nie robi nic w moim przypadku.
noraj
8
set-window-option -g xterm-keys on

Dostałem trochę drogi i dałem Ctrl- Left/Rightna konsoli, ale nadal reagował inaczej w vimie.

Wydawanie kluczy nie wydawało się pomocne.

Okazało się, że w pewnym momencie ustawiłem mój domyślny terminal na screen ( set-option -g default-terminal "screen"in .tmux.conf)

Zmiana tego na następującą dała mi Ctrl- Left/Rightwe wszystkim innym:

set-option -g default-terminal "xterm-256color"

Mam nadzieję, że komuś pomoże.

Kieran Moore
źródło
1
Tyle że łamie kolory w vimie, tig i przypuszczalnie całej
masie
1
zobacz także unix.stackexchange.com/a/1098/250, aby uzyskać poradę przeciwko ustawianiu TERM w ten sposób w tmux
phunehehe
3

Dla msys2 / Cygwin / mintty:

Dodaj poniżej do ~/.inputrc.

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Przeładowanie sprawi, że tmux będzie działał poprawnie.

Mithril
źródło
2

Nie jestem pewien, ale może to być spowodowane tym, że tmuxdomyślnie powiązania C-<up/down/left/right>przenoszą fokus na panel powyżej / poniżej / lewej / prawej strony aktualnie zaznaczonego panelu. Jeśli często nie używasz paneli, być może nie zauważyłeś tej funkcji. Jeśli na tym polega problem, możesz odłączyć te klucze, mówiąc:

unbind C-Left
unbind C-Right

To może wystarczyć samodzielnie lub może być konieczne ręczne ponowne powiązanie ich z tym, co chcesz, aby:

bind -n C-Left <the action you want>
bind -n C-Right <other action you want>
jake-low
źródło
1
Powinien sam wystarczyć, jeśli nie zostanie złapany przez tmux, powinien przejść na powłokę.
Rob
0

Dla mnie klucze nie były poprawnie wiązane, ponieważ preferencje systemowe w High Sierra były ustawione na użycie przez Mission Control. Odznaczenie ich pozwoliło na prawidłowe działanie powiązań w iTerm2 i Tmux

Preferencje systemu

Odznaczenie wszystkich elementów odnoszących się do klawisza sterującego, pozwoliło na prawidłowe działanie powiązań

Andrzej
źródło