我正在使用Linux Mint 20 Ulyana,Cinnamon 4.6.6
每次启动新的Shell会话时,我都会使用以下代码激活tmux。
function tmux-as-default-terminal () {
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
tmux attach -t default || tmux new -s default
fi
}
tmux-as-default-terminal
但是,它有一个小问题。当我右键单击目录并单击“在终端中打开”时,它不会打开该路径。相反,它只是打开上一个tmux会话。
在这里可以做什么?
更新1
我发现tmux new-session -c $PWD
在当前目录中打开一个新的tmux会话。
tmux attach -t 0 -c $PWD \; new-window \;
附加到现有会话,并使用当前目录打开一个新窗口。
这些信息对于解决这个难题可能很重要。
更新2
从Is it possible to send input to a tmux session without connecting to it?我发现我可以使用
$ tmux new -d -s mySession
$ tmux send-keys -t mySession.0 "^U"
$ tmux send-keys -t mySession.0 "cd /tmp" ENTER
$ tmux a -t mySession
cd到当前会话中的目录。
更新3
附加了一些字符串的解决方案
function tmux-as-default-terminal () {
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]
then
if tmux has-session -t default
then
tmux send-keys -t default.0 "^U"
tmux send-keys -t default.0 "cd $PWD &> /dev/null" ENTER
tmux send-keys -t default.0 "^L"
tmux attach-session -t default.0
else
tmux new-session -s default -c $PWD
fi
fi
}
tmux-as-default-terminal
只要我不要同时打开多个终端,它就可以工作。
答案 0 :(得分:0)
在这里OP。对于每个tmux客户端,它将创建一个新会话。
-----------------------------------------------------
organisation_id | organisation_name | num_cards |
-----------------------------------------------------
1 | Luxury Bus Services | 1
2 | Power tools | --
3 | Test test | 5
默认情况下,您将附加到哪个tmux会话,具体取决于打开了多少个客户端。