2 min read

Ranger 文件管理器

Ranger 是一个终端窗口内的文件管理器,使用 VI 键绑定。

如果你习惯使用键盘,并且熟悉基本的 Vim 键组合,则 Ranger 是个非常不错的选择。

安装 Ranger

Ranger 的安装方法有多种。

系统安装包

某些 Linux 系统有打包好的 ranger 安装包,可直接安装,比如 Ubuntu:

$ sudo apt-get install ranger

openSUSE 下:

sudo zypper install ranger

但软件源提供的 Ranger 有可能不是最新,那么可以考虑下面一种方法。

压缩包

ranger 网站下载压缩包,然后解压。

解压后的文件可以直接运行:

$ tar xvf ranger-stable.tar.gz 
$ cd ranger-stable 
$ ./ranger.py

也可以安装后运行:

$ tar xvf ranger-stable.tar.gz 
$ cd ranger-stable 
$ sudo make install

这个办法同样可用于更新 Ranger,查看 Ranger 的版本命令为终端窗口输入:ranger --version

git 源

ranger 源代码通过 git 管理,所以,也可以从源代码库克隆一份,好处是最新的程序更新都能使用到,但稳定性不一定最佳:

$ git clone git://git.savannah.nongnu.org/ranger.git 
$ cd ranger

之后按上一步的两个办法操作。

使用 ranger

打开终端窗口,输入:ranger 然后按 Enter 进入 Ranger 界面。

Ranger 的界面分为三列,

  1. 中间列 – 当前目录
  2. 左列 – 上一级目录
  3. 右列 – 可预览文件的内容,默认仅支持文本文件的预览,但是可以通过设置预览 html,图片,存档文件,pdf 甚至音视频信息。

ranger screenshot

因为 ranger 使用 VI 键绑定,所以对 Vim 熟悉的用户可以轻松上手,比如 j 表示光标下移,k 表示光标上移,h 表示返回上一级目录,l 表示进入光标所在的目录或打开光标所在的文件。

ranger 的键绑定很多,某些不常用的键,一时记不起是正常的,这时可以在 ranger 里按 1? 打开键绑定的清单,2? 则是命令清单,3? 是设置项清单,? 则是整个使用手册。按 q 即可退出帮助界面。

在 ranger 里,可以像 Vim 一样按 : 进入命令模式,然后调用 ranger 的命令。比如光标位置下的图片,我不想用系统默认的程序打开,则可以按 : 进入命令模式,然后输入 open_with(可以按 r 快速打开这个命令),再之后是要打开图片的程序,比如 feh,则整个命令的形式是:

:open_with feh

当然,这种常用的操作 ranger 默认配备了一个 r 快捷键。

又或者想删除文件,可以按空格键先做标记,或者将光标移动至要删除的文件上,然后进入命令模式,输入 delete 命令,回车,按 y 确定删除。要以 root 的身份启动程序也非常容易,在 open_with 后跟一个 “r” 标记(flag),然后就会要求输入 root 用户密码。

复制文件按 yy,剪切按 dd,粘贴按 pp,E 编辑当前文件,重命名可以通过命令行 :rename 新名字,ranger 还支持 midnight commander 的一些键用法,比如 f3 是显示文件,f4 是编辑文件,f5 是复制文件,f6 剪切文件。midnight commander 也是一个基于文本操作的文件管理器,双面板。与 Windows 系统下的 total commander 有相似之处。

显然,键绑定是可以修改的,首先,需要一个 rc.conf 配置文件(ranger 1.5 版本后):

$ ranger --copy-config=rc

这样会在 ~/.config/ranger/ 下生成一个 rc.conf 文件,里面可以看到许多 map,类似 Vim 的键映射,可以根据需要进行修改。

文件的打开程序列表也可以通过配置文件修改:

$ ranger --copy-config=rifle

以上命令在复制了一份 rifle.conf 到 ~/.config/ranger/ 目录,打开即可以编辑。

作为文件管理器,Ranger 可以快捷访问某些目录,比如 gh 访问主目录,gm 访问 /media 目录,实际上,当你按下 g 时,ranger 会在底部弹出一个辅助栏,提示可以通过 g(go to 的意思)访问到的目录。另外,目录也可以以书签形式组织,譬如当前目录可以按 ma 加入书签中,然后 `a 或者 'a 访问到该目录,这在 Vim 下是 quickmark 的操作,也很像 totalcommander 的 ctrl-d + 字符的操作。另外还可以在进入命令模式后按 tab 键自动补齐书签中的目录,不过前一个方法显然要更快捷。

以上略作介绍,更多内容请见 ranger 使用手册,即 ranger 中按 ? 的结果。

报告问题 修订