启动 zsh 终端时默认加载 tmux

eoi*_*noc 29 zsh terminal tmux

我目前的工作流程是:

  1. CTRL+ SHIFT+T启动一个新的终端窗口。这将启动一个新的 zsh 终端。
  2. 键入tmux以启动 tmux。

如何使用新的终端窗口默认加载 tmux?

rus*_*ush 43

至少有两种方式:

  1. 写一些像

    if [ "$TMUX" = "" ]; then tmux; fi
    
    Run Code Online (Sandbox Code Playgroud)

    在开头~/.zshrc。请注意在tmux生成自己的zsh.

  2. 将终端启动命令修改为类似

    xterm -e tmux
    
    Run Code Online (Sandbox Code Playgroud)

我更喜欢第二种方式,因为有时我需要在没有的情况下启动终端tmux(例如,当我需要重新连接到现有会话时)。

  • 或者为 `xterm -e tmux` 和普通的 `xterm` 设置不同的快捷方式。 (2认同)

小智 12

其实有一个默认插件tmuxoh_my_zsh

将其添加到您的插件列表中,然后ZSH_TMUX_AUTOSTART=true在您的.zshrc

如需更多参考,请转到此处

  • 您必须在“source $ZSH/oh-my-zsh.sh”行之前添加“ZSH...=...”赋值,来自 https://github.com/ohmyzsh/ohmyzsh/issues/3676# issuescomment-77806736 (2认同)

小智 10

将其添加到您的 .zshrc

if [ -z "$TMUX" ]
then
    tmux attach -t TMUX || tmux new -s TMUX
fi
Run Code Online (Sandbox Code Playgroud)

那么当您启动终端时,tmux 将自动连接到一个名为TMUX的会话。


dev*_*rot 8

但是请注意echo tmux >> ~/.zshrc解决方案,我记得简单地将 abash放入.cshrc文件会导致我在 SSH 上遇到麻烦。

IIRC 问题出现在非交互式 shell 中,因此您应该对此进行测试。

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac
Run Code Online (Sandbox Code Playgroud)