命令行中的文件管理器 ranger

ranger 一个开源的文件管理器,目前(2023年04月22日)在 GitHub 上面有 13.2k 颗星。它特别的地方在于,它是在终端里面使用的文件管理器。

我们可以通过 pip 来安装

pip install ranger-fm

安装好后,输入 ranger 就可以打开它。

官方用户指导

打开之后默认是分成两栏或者三栏的,我们可以使用方向键来移动。

其实和 vim 的使用方法很像的,例如输入冒号 : 之后,可以用 set 来开关各种功能。

ranger-set-command

我这里输入 :set draw_borders both 来打开边框。敲下回车键之后,边框就出来了。个人感觉这样比较好看,而且区别清晰,更直观。

ranger-border

其实从顶部和底部,我们还可以获取到很多信息。顶部就是当前的路径,和在 Windows 里使用「资源管理器」很像。

底部可以看到文件的修改时间。右边可以看到磁盘的剩余空间。

按下键盘上的 g 会弹出快捷指令。此时再按一下 h,就可以跳转到用户目录下。就是 go home。我经常使用它来切换路径。

ranger-g

按下 z 也会弹出指令,主要是更改一些设置

ranger-z

例如按 h 就可以显示隐藏文件。(除了使用 zh 之外,也可以使用退格键Backspace)

举一个例子,比如说我想查看 postgresql 的配置文件。那么以前我得这么做

cd /etc/postgresql
ls
cd 14
ls
cd main
ls

不断地使用 cd 和 ls

但是我现在使用 ranger 的话,效率就提高很多了

先按 ge 就可以切换到 /etc 里面,然后我可以再按 zz 调出过滤器,输入 post,它就会筛选出带 post 的文件或者文件夹。(比 search 好用,search 还得输入文字之后按回车键,filter 是实时的)

ranger-filter

之后我只需要一直按方向键右 → 来进入文件夹,还可以预览文件的内容。

ranger-pg-config

再说说一些基本操作

ranger 默认情况下,是使用 vim 来打开文本文件的,例如上面的 conf 或者 py 等等。如果我想使用 nano 来打开,那可以先按 r 再输入 nano 回车。

删除文件可以用 F8

复制粘贴,先复制 yy 再粘贴 pp

剪切粘贴 dd pp

不过这样只是对单个文件的操作,如果要操作多个,可以先用空格键标记文件,此时文件名会高亮,并且缩进一个字符。

ranger-space-Mark

再按一次空格键可以取消标记。

重命名文件 cw

我自己给 ranger 设置了别名 rr

alias rr='ranger'

这样可以更快速地打开它。

配置文件

按 g 的时候会弹出很多路径让我们快捷切换。

key          command
L cd -r %f
l cd -r .
/ cd /
r cd /
d cd /dev
e cd /etc
m cd /media
M cd /mnt
o cd /opt
s cd /srv
p cd /tmp
u cd /usr
? cd /usr/share/doc/ranger
v cd /var
h cd ~
i eval fm.cd('/run/media/' + os.getenv('USER'))
R eval fm.cd(ranger.RANGERDIR)
g move to=0
c tab_close
T tab_move -1
t tab_move 1
n tab_new

我们其实是可以自定义这些路径的。我们在终端执行

ranger --copy-config=rc.conf

然后到 ~/.config/ranger 里面找到这个文件,一共有 700 多行。到 450 行可以看到这些

450 map gh cd ~
451 map ge cd /etc
452 map gu cd /usr
453 map gd cd /dev
454 map gl cd -r .
455 map gL cd -r %f
456 map go cd /opt
457 map gv cd /var/log/

我们可以修改,或者添加都行,例如我添加多一行

map g1 cd /etc/postgresql/14/main/

那么我只要按 g1 就可以切换到 /etc/postgresql/14/main/