如何在 iTerm2 中的单独窗口上启动新的 tmux 会话?

如何在 iTerm2 中的单独窗口上启动新的 tmux 会话?

我想在 iTerm2 中的单独窗口上启动 tmux 会话。现在我正在编写自己的配置脚本来启动会话。

tmux new-session -s dev -n main -d
tmux send-keys -t dev "cd $DL" C-m
tmux split-window -h -t dev
tmux split-window -v -t dev -p 30
tmux resize-pane -x 70 -y 20
tmux attach -t dev

这将启动一个新会话,但窗口位于我执行脚本的窗口上,而不是 iTerm2 中新的单独窗口。

所以我将第一行 ( tmux new-session -s dev -n main -d) 更改为tmux -CC new -t dev,但是虽然会话在新窗口中启动,但它没有拆分和调整大小。似乎只是在新窗口中打开新会话而已。

如何使其在新窗口中启动并包含所有初始设置,包括目录更改、拆分窗口等...?

答案1

您可以使用 applescript 执行以下操作:

$ cat a.bash
#!/bin/bash
osascript - "$@" <<EOF
on run argv
tell application "iTerm"
    activate
    set new_term to (create window with default profile)
    tell new_term
        tell the current session
            repeat with arg in argv
               write text arg
            end repeat
        end tell
    end tell
end tell
end run
EOF

这提供了一个脚本,然后可以将传入其中的参数传递到另一个 iterm2 终端。

例如:

$ ./a.bash "echo 'hello iterm2'"

   iterm2 启动的 ss

参考

答案2

你快到了。您的控制模式命令大部分是正确的,但您应该替换最后的与它对齐,而不是第一行。使用它作为你的最后一行:

tmux -CC attach -t dev

顺便说一句,您的前两行可以合并为一行:

tmux new-session -s dev -n main -d "cd $DL; $SHELL"

相关内容