Powiązanie klucza tmux: Nie znaleziono okna

0

Mój problem polega na tym, że nie mogę tworzyć tmuxpowiązań klawiszy do przełączania okien.

Korzystam z tmuxmultipleksera terminali na serwerze FreeBSD. tmuxjest uruchamiany automatycznie dla wszystkich zdalnych loginów przy użyciu ~/.bash_profile:

if [ $TERM = "xterm" ]; then
   ( (tmux has-session -t remote && tmux attach-session -t remote) \
  || (tmux new-session -s remote) ) && exit 0
   echo "tmux failed to start"
fi

Domyślnie, tmuxokna są przełączane za pomocą Ctrl+B 1, Ctrl+B 2...
Chcę przełączać tmuxokna użyciu F1, F2...

Dodałem więc następujące wiersze ~/.tmux.conf:

bind-key -n F1 select-window -t :1
bind-key -n F2 select-window -t :2
bind-key -n F3 select-window -t :3
bind-key -n F4 select-window -t :4
bind-key -n F5 select-window -t :5
bind-key -n F6 select-window -t :6
bind-key -n F7 select-window -t :7
bind-key -n F8 select-window -t :8
bind-key -n F9 select-window -t :9

Teraz, kiedy loguję się i naciskam F1, tmuxmówi: „Nie znaleziono okna:: 1”. Próbowałem zmienić bind-key -n F1 select-window -t remote:1, komunikat o błędzie jest podobny: „Nie znaleziono okna: zdalne: 1”.

Przełączanie okien z wiersza poleceń działa, zarówno, jak tmux select-window -t :1i tmux select-window -t remote:1.

Jak mogę sprawić, by działał jako kluczowa oprawa?

Michaił Kupczik
źródło
Wiązania wyglądają poprawnie, a polecenie związane jest oczywiście uruchamiane po naciśnięciu klawisza F1. Co tmux list-windowspokazuje Czy base-indexustawiłeś wysoką wartość (tak, że zwykle nie masz okna z indeksem tak niskim jak 1)?
Chris Johnsen
tmux list-windowspokazuje 1: bash* (1 panes) [108x48] [layout ce7d,108x48,0,0,0] @0 (active). base-indexjest ustawiony na 1 cal ~/.tmux.conf.
Michaił Kupchik

Odpowiedzi:

3

Spróbuj sprawdzić niewidoczne znaki w ~/.tmux.confpliku. Jestem w stanie odtworzyć twoje symptomy, kiedy bind-keylinie kończą się CR (tj. Zakończenia linii w stylu DOS / Windows).

Jeśli używasz Vima do edycji, sprawdź za fileformatpomocą :set ff?. Jeśli jest ustawiony na dos, możesz naprawić plik za pomocą tego polecenia:

:set ff=unix|w

Jeśli fileformatzostało już ustawione na unix, sprawdź poszczególne linie; jeśli są tam znaki CR, powinny pojawić się jako ^M.

Chris Johnsen
źródło
Tak, zmieniłem plik .tmux.conf w systemie Windows i przesłałem go za pomocą wtyczki WinSCP Far. Konwertowałem wszystkie zakończenia linii na styl uniksowy zgodnie z twoją rekomendacją, a tmux działa teraz zgodnie z oczekiwaniami. tmux select-window -t :1<CR>nie działało, ponieważ nie ma :1<CR>okna, a komunikat o błędzie dotyczący brakującego :1<CR>okna nie wyświetlał <CR>części. Widzę teraz prawdziwy powód i dziękuję za twoją doskonałą odpowiedź.
Michaił Kupchik