我正在尝试使用与当前会话相同的名称创建新会话,并-2
在名称末尾添加一个额外的内容。
bind C new-session -c "#{pane_current_path}" -s "#{session_name}"-2
不会session_named
插入文本中的变量名称,而是使用该名称创建会话"#{session_name}"-2
我也在运行 tmux 2.6
答案1
这在 tmux 2.1 和 2.6 中适用于我。您需要分离新会话。
bind-key C run-shell 'tmux new-session -d -c "#{pane_current_path}" -s "#{session_name}-2"'
如果您想切换到新会话,您可以使用switch-client
将此客户端移至“下一个”会话。
bind-key C run-shell \
'tmux new-session -d -c "#{pane_current_path}" -s "#{session_name}-2"' \;\
switch-client -n
请注意前面的反斜杠;
以及此处用于将装订分成 3 行的反斜杠,以便于阅读。
答案2
首先,当我尝试此操作时,我收到了有关嵌套tmux
会话的警告消息,并且tmux
拒绝执行该操作,除非我首先取消设置变量$TMUX
,但我不愿意这样做。所以,我有点好奇为什么你的绑定有效。
您说它确实有效,只是它创建了一个名称不正确的会话,也许可以尝试以下操作:
bind C new-session -c "#{pane_current_path}" -s "$(tmux display-message -p "#S")-2"
此解决方案尝试使用 shell 的命令替换习惯用法$(..)
。