Zsh

Ranger 文件管理器作為 shell 啟動時的單例實例

  • January 14, 2022

問題

我使用zsh並在其配置文件中添加了一行在啟動時啟動ranger

.zshrc

# A few other settings and commands.
ZSH_TMUX_AUTOSTART="true"
plugins=(tmux ...)

source ranger

由於它,每個新打開的(主要在tmux中)zsh 都會執行 ranger。

期望

只有在沒有執行的情況下才啟動一個遊俠程序。

如下所示:

if [[ ! -v RANGER_RUNNIG ]]; then
  export RANGER_RUNNING="true"
  source ranger
fi

基本上,通過修改 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

引用自:https://unix.stackexchange.com/questions/686089