Wednesday, December 11, 2019

freebsd - tmux key binding: Window not found




My problem is I can't make tmux key bindings to switch windows.



I'm running tmux terminal multiplexer on the FreeBSD server. tmux is started automatically for all remote logins using ~/.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



By default, tmux windows are switched using Ctrl+B 1, Ctrl+B 2 ...
I want to switch tmux windows using F1, F2 ...



So I added the following lines to ~/.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


Now when I login and press F1, tmux says: "Window not found: :1".
I've tried to change to bind-key -n F1 select-window -t remote:1, the error message is similar: "Window not found: remote:1".




Switching windows from command line works, both tmux select-window -t :1 and tmux select-window -t remote:1.



How can I make it work as a key binding?


Answer



Try checking for non-visible characters in your ~/.tmux.conf file. I am able to reproduce your symptoms when the bind-key lines end with a CR (i.e. DOS/Windows-style line endings).



If you use Vim to edit, check the fileformat with :set ff?. If it is set to dos, then you can fix the file with this command:



:set ff=unix|w



If fileformat was already set to unix, then inspect the individual lines; if there are CR characters there, they should show up as ^M.


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...