Ranger 文件管理器作为 shell 启动时的单例实例

Ranger 文件管理器作为 shell 启动时的单例实例

问题
我用桀骜并在其配置文件中添加一行启动护林员启动时。

.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

相关内容