Моя проблема в том, что я не могу сделать привязки клавиш tmux для переключения окон.

Я использую мультиплексор терминала tmux на сервере FreeBSD. tmux запускается автоматически для всех удаленных входов в систему с использованием ~/.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

По умолчанию окна tmux переключаются с помощью Ctrl+B 1, Ctrl+B 2 ...
Я хочу переключать окна tmux используя F1, F2 ...

Поэтому я добавил следующие строки в ~/.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

Теперь, когда я вхожу и нажимаю F1, tmux говорит: «Окно не найдено:: 1». Я попытался изменить на bind-key -n F1 select-window -t remote:1 , сообщение об ошибке похоже: «Окно не найдено: remote: 1».

Переключение окон из командной строки работает, как tmux select-window -t :1 и tmux select-window -t remote:1 .

Как я могу заставить его работать как связывание ключей?

1 ответ1

3

Попробуйте проверить наличие невидимых символов в файле ~/.tmux.conf . Я могу воспроизвести ваши симптомы, когда строки bind-key заканчиваются символом CR (то есть окончания строк в стиле DOS/Windows).

Если вы используете Vim для редактирования, проверьте fileformat с помощью :set ff? , Если для него установлено значение dos , вы можете исправить файл с помощью этой команды:

:set ff=unix|w

Если fileformat уже был установлен в unix , то проверьте отдельные строки; если там есть символы CR, они должны отображаться как ^M

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .