如何退出 Ranger 文件资源管理器并返回到命令提示符但保留当前目录?

如何退出 Ranger 文件资源管理器并返回到命令提示符但保留当前目录?

我在用Ranger 终端文件浏览器在 Linux 终端中。
假设我从主目录中的命令提示符开始并启动 Ranger

user@/home/user $ ranger

ranger 打开.....并且在 ranger 程序中我探索:

/media/ubuntu/sdf675d7sf5sdfs7/some_directory

如果我随后按 q 退出 ranger,我将回到启动 ranger 的同一文件夹。即

user@/home/user $

是否有可能退出 ranger,并保留在 ranger 所在的目录中。

user@/media/ubuntu/sdf675d7sf5sdfs7/some_directory $  

答案1

根据其手册

--choosedir=targetfile    
    Allows you to pick a directory with ranger. When you exit ranger, it will write the last visited directory into targetfile.

因此您需要做的就是创建一个这样的别名:

alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'

建议将此别名写入您喜欢的 shell 的 rc 中。

答案2

Shift + S

如果你点击Shift + S,它会在当前目录打开一个新的 shell。

然后如果你击中了Ctrl + D壳,它就会回到ranger

这种解决方法通常就足够了。

顺便说一句,我已经放弃文件管理器几年了,我只在我的 bashrc 中有这个,我只需使用 Tab 键完成即可浏览目录,这对我来说已经足够了:

c() {
  if [ -n "$1" ]; then
    cd "$1" || return 1
  else
    cd ..
  fi
  ll
}
ll() ( ls -hl --time-style="+%Y-%m-%d_%H:%M:%S" "$@"; )

GitHub 上游

答案3

我找到了一个更简单的解决方案。当你安装 ranger 时,它会将一个脚本放在你的 bin 文件夹中,如果执行该脚本,将启动该程序。但是如果你使用 source 命令,

$ 源游侠

当您退出时,它将启动 ranger 并将您放在最后访问的文件夹中。

因此,如果您希望默认采用这种行为,只需执行

$ alias ranger='源 ranger'

或者更好的是将其放入你的.bashrc文件中。

要查看此功能的文档和实现,请阅读 bin 文件夹中的 ranger 脚本。

答案4

为了借鉴 Gombai Sándor 的回答,我建议对别名做一些小的调整:

alias ranger='ranger --choosedir=$HOME/.rangerdir; LASTDIR=`cat $HOME/.rangerdir`; cd "$LASTDIR"'

通过将“$Home/rangerdir”更改为“$Home/.rangerdir”,您可以隐藏由别名创建的文件。这样就不会令人烦恼地弄乱主文件夹。它对其工作方式没有功能差异。

相关内容