1. 引言
文件管理是操作系统十分重要的一项能力,拥有 GUI 的操作系统中,通常都会有图形化的文件管理工具,供我们管理我们的文件,例如 windows 上的资源管理器,MacOS 中的“访达”,Android 下的 ES 文件浏览器,linux 下各具特色的开源文件管理器。
这些 GUI 下的文件管理器侧重点各有不同,但如果没有了 GUI,我们是否还有能够用一款好用的命令行工具来方便的管理目录和文件呢?本文要介绍的 ranger 就解决了这个问题。
下面就是一张 ranger 与 windows 资源管理器对比的示例图:
2. Ranger 的优势
ranger 支持以下功能:
- 支持 utf-8 编码
- 支持多列显示
- 支持文件、目录预览
- 支持通过命令管理文件系统,如创建、更改权限、复制、删除等
- 一次性重命名多个文件
- vim 热键支持
- 自动识别文件类型并用预定程序打开文件
- 自动将目录变更应用到 shell
- 支持多标签、加书签、鼠标操作等
3. ranger 的安装与启动
3.1 安装
你可以通过包管理工具进行安装,例如:
sudo apt install ranger
也可以通过 python 的 pip 工具进行安装:
pip install ranger-fm
3.2 启动
ranger 的用法很简单,只要通过 ranger 命令即可启动:
ranger [–version] [–help] [–debug] [–clean] [–confdir=directory] [–copy-config=which] [–choosefile=target] [–choosefiles=target] [–choosedir=target] [–selectfile=filepath] [–list-unused-Keys] [–list-tagged-files=tag] [–profile] [–cmd=command] [path]
通过 man 命令可以看到非常详细的 ranger 使用手册。
ranger 命令包含下列选项:
选项 | 说明 |
---|---|
-d, --debug | 调试模式:当发生错误时,Ranger 会退出并打印回溯。 |
-c, --clean | 干净模式:Ranger 不会读取或者创造任何配置文件,不会在系统内留下任何痕迹。 |
-r dir, --confdir=dir | 将 Ranger 的配置文件夹从 ~/.config/ranger 改为 dir。 |
--copy-config=file | 复制一份默认的配置文件到 Ranger 的配置文件夹内,已存在的不会被盖写。file 包括 all、commands、commands_full、rc、rifle 和 scope。 |
--choosefile=targetfile | 允许你使用 Ranger 选择一个 targetfile 文件,当你用在 Ranger 中用 r 命令打开一个文件时,Ranger 会退出,并将这个文件的绝对路径写入 targetfile 文件。 |
--choosefiles=targetfile | 可以选择多个文件的绝对路径写入 targetfile 文件,每一个占一行,按字母升序排列。 |
--choosedir=targetfile | 将退出 Ranger 后的最后一个访问过的文件的绝对路径写入 targetfile 文件。 |
--selectfile=targetfile | Ranger 的光标跳转到 targetfile 文件。 |
--list-unused-Keys | 列出在浏览器环境中未绑定任何动作的按键 |
--list-tagged-files=tag | 列出用给定 tag 标记的所有文件。注意:标签是单个字符,默认标记为 *。 |
--profile | 退出时打印 CPU 使用情况的统计信息。 |
--cmd=command | 在配置文件读取完成后执行 command 命令。多次使用此选项运行多个命令。 |
--version | 打印版本信息并退出 |
-h, --help | 打印此选项列表并退出 |
4. 操作
ranger 之所以非常容易上手,就是因为他的所有快捷键都与 vim 中几乎没有什么差别,所以即便是你第一次安装,你也能使用得得心应手。
4.1 基本操作
这些基本操作与 vim 中几乎一模一样:
- h – 向左回到父目录
- l – 向右进入子目录(回车也可以)
- k/j – 上/下移动光标
- u/d – 上下翻半页(K/J)
- b/f – 上下翻页(PAGEUP/PAGEDOWN)
- H/L – 后退/前进到上一个或下一个历史记录
- gg/G – 跳转到顶端或底端(HOME/END)
- V – 开启/关闭选择模式
- 空格 – 选择/取消选择
- v – 反选
- uv – 取消所有选择
- / – 搜索
4.2 跳转的高级操作
更加高级的跳转操作是通过 g 一个字母实现的,在 ranger 中,只要按下 g,就可以看到弹出窗口中的说明:
4.2.1 符号链接跳转
如图所示,gL
相当于 cd -r
,也就是跳转到符号链接的原始位置。
而如果当前路径是一个符号链接指向的路径,gl
则相当于 cd -r .
,也就是跳转到当前路径的原始位置。
4.2.2 tab 操作
ranger 是支持多个 tab 进行操作的:
gn
– 创建新 tabgt
– 在 tab 上右移(TAB)gT
– 在 tab 上左移(SHIFT TAB)gc
– 关闭当前 tabuq
– 重新打开上次关闭的标签页
4.3 书签操作
ranger 支持添加书签:
- m – 显示书签界面
- m key – 添加书签
- ` key – 跳转到 key 所标记的书签位置
4.4 其他高级操作
其他的高级操作也可以像跳转一样,按下一个按键然后阅读弹出窗口中的说明,例如:
- y – 复制
- d – 剪切、删除
- p – 粘贴
- – 增加权限
- - – 取消权限
- o – 排序
- M – 显示模式
- z – 设置
此外,还有一些额外的操作:
- F7 – 创建目录
- INSERT – 新建文件
- F2 – 重命名(cw、I、A、a 都可以实现,类似 vim 中对应按键的区别)
- t – 用 * 标记
- " – 用 tag 标记
- ut – 取消标记
5. 后记
上面介绍了 ranger 的基本用法,事实上,ranger 还支持非常强大的命令和插件系统,可以参考 github 上的官方文档进行配置:
https://github.com/ranger/ranger
unix 系统中,还有其他一些好用且功能强大的终端文件管理器:
- nnn
- fff
- lf
这些终端下的文件管理器占用资源少,功能却十分强大,使用起来方便快捷,只要善于加以利用,就可以让你的工作效率大为提升。