I have a nice bash alias for tmux which opens a new window and directly ssh to whatever I specify
function s() {
tmux neww -n "$1" -- ssh "$1"
}
I want to also have something similar directly as an alias in tmux, so I can do C-b :s myhost when I'm already in a ssh to another server, instead of having to change windows, and then run s myhost in bash.
I tried using tmux's confiug to do various variations of
set -s command-alias[100] s='run s'
Also using directly ssh, or without using run etc. But I can't figure it out.
That means when I press C-b, SHIFT S it asks what IP to connect to (type it in when it asks on the status bar of TMUX), press enter, the it asks the port to use.
In tmux, you usually set configuration options with set -g in tmux.conf. "-g" sets a global option which will apply to all new windows and sessions, otherwise the option applies only for the current window, which is usually not what you want.
Since command-alias is an array, you can use the -a flag to append a new value at the end.
With that said, try this:
set -ga command-alias s="new-window ssh foo"
Keep in mind that run in tmux runs a shell command in the background, so you most likely want to use something like new-window or new-session instead.