
レンジャーではクリックしてS
砲弾に飛び込んでctrl+D
レンジャーに戻ることができます。
しばらくシェルにいたがレンジャーにジャンプしたいときに普通のシェルを打つべきか、すでにレンジャーを介してシェルranger
に入っているならそれを打つべきか分からない。ctrl+D
。
間違えた場合、ctrl+D
端末は閉じます。誤って使用すると、ranger
Ranger 内に Ranger インスタンスがネストされます。
すでにレンジャーシェルにいることを確認する方法はありますか?
コマンドがある場合は、rangerp
シェルにある場合は「True」でエイリアスを、そうでない場合は「False」でエイリアスを指定できます。
答え1
Rangerがシェルを作成するたびに、環境変数が増加しますRANGER_LEVEL
。
$ echo $RANGER_LEVEL
$ ranger # Open Ranger and enter a nested shell
$ echo $RANGER_LEVEL
1
$ ranger # Do the same thing from the nested shell
$ echo $RANGER_LEVEL
2
要求されたコマンドに対して、次のことができます。
alias inranger="[ $RANGER_LEVEL ] && echo True || echo False"
このコマンドを実行するのに時間を無駄にしたくない、または実行するのを忘れないようにするには、シェルのRCファイルを編集してプロンプトに必要な情報を追加できます。
if [ -n "$RANGER_LEVEL" ]; then
export PS1="[r$RANGER_LEVEL]$PS1";
fi
それだけです:
$ ranger # Open Ranger and drop into a shell
[r1]$ ranger # One more time
[r2]$ # ...
答え2
親プロセスpidを見ると役に立ちます。
[root@centos8 ranger-1.9.3]# ps -fp $PPID
UID PID PPID C STIME TTY TIME CMD
root 3240 3214 0 08:03 pts/1 00:00:00 /usr/bin/python3 -O /usr/local/bin/ranger
[root@centos8 ranger-1.9.3]#
だから試してみてください
ps -fp $PPID | grep -q ranger && echo True || echo False
答え3
魚の殻で修理する
ファイルの作成~/.config/fish/functions/ranger.fish次のコンテンツが含まれています。
function ranger --description 'Simple, vim-like file manager'
if test -n "$RANGER_LEVEL"
exit
else
command ranger $argv
end
end