问题:
我用桀骜并在其配置文件中添加一行启动护林员启动时。
.zshrc
# A few other settings and commands.
ZSH_TMUX_AUTOSTART="true"
plugins=(tmux ...)
source ranger
由于它每个新开张(主要是在多路复用器) zsh 运行 Ranger。
期待:
仅当没有正在运行的 Ranger 进程时才启动 Ranger 进程。
类似如下:
if [[ ! -v RANGER_RUNNIG ]]; then
export RANGER_RUNNING="true"
source ranger
fi
答案1
基本上,通过修改 zsh 在每个新 shell 上执行的操作的解决方案听起来有点复杂。相反,只需启动您tmux
想要在第一个窗格中显示的程序:
tmux new-session ranger
当您手动添加更多窗格时,它们只会启动默认 shell。
您还可以准备一大堆窗格。例如,从布局开始
┌────────────┬───────────┐
│ │ zsh │
│ │ │
│ ranger ├───────────┤
│ │ zsh │
│ │ │
└────────────┴───────────┘
你可以只是
#!/bin/sh
# e.g. /usr/local/bin/my_tmux
# or just ~/bin/mt, to make your typing easier
# (assuming /home/r45i/bin is part of $PATH)
#
# check we're not running within tmux
if [ -z "$TMUX" ]
then
# start a detached session
tmux new-session -d ranger
# split the window horizontally
tmux split-window -h
# split the freshly created vertically
tmux split-window -v
# attach to the session
tmux attach-session -d
fi