📖 1. Ranger 简介
Ranger(游侠)是一款 Linux 下的指令式文件管理器,操作风格类似 Vim。
通过输入命令即可完成目录跳转、文件编辑、移动、复制等操作。
与 mc(Midnight Commander)相比,Ranger 功能更强大,但学习曲线稍陡。
对于熟悉 Vim 的 Linux 用户来说,它是一款非常高效的工具。
本文介绍了 Ranger 的安装和一些比较通用的 Ranger 配置。
💿 2. 安装方式
一般 Linux 系统不会自带 Ranger,但大多数软件库中都有提供。
以 Debian/Ubuntu 为例,可直接使用以下命令安装:
sudo apt update
sudo apt install ranger
安装完成后即可使用基本功能。Ranger 的基本玩法可参考:
⚙️ 3. 配置文件
Ranger 默认配置已经很全面,但通常需要自定义以提升使用体验。
执行以下命令拷贝 Ranger 的默认配置:
ranger --copy-config=all
这样会将默认配置复制到 ~/.config/ranger/ 下,Ranger 会优先使用用户配置文件。
配置文件共 5 个:
-
commands.py -
commands_full.py -
rc.conf -
rifle.conf -
scope.sh
其中需要重点关注的有 3 个:
-
commands.py:用于自定义 Python 脚本功能,可集成其他工具。
-
rc.conf:用于定义组合键和快捷键映射,也可绑定
commands.py中的脚本。 -
rifle.conf:用于设置文件默认打开方式,指定使用何种程序。
📝 4. 修改默认编辑器
Ranger 默认使用 nano 作为编辑器,但对很多用户来说 vim 更方便。
编辑 rifle.conf 文件,搜索 EDITOR,可以看到如下配置:
mime ^text, label editor = ${VISUAL:-$EDITOR} -- "$@"
mime ^text, label pager = "$PAGER" -- "$@"
!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
将其中的 ${VISUAL:-$EDITOR} 全部替换为 vim 即可。
🚀 5. 集成 fzf
fzf 是一款模糊匹配搜索工具,速度很快。将它集成到 Ranger 后,可以大幅提升文件查找效率。
集成 fzf 首先需要在 commands.py 的最后添加以下代码:
class fzf_select(Command):
"""
:fzf_select
使用 fzf 搜索文件或目录,并跳转到选中的位置
"""
def execute(self):
import os
import subprocess
fzf = self.fm.execute_command(
"fzf +m", universal_newlines=True, stdout=subprocess.PIPE
)
stdout, _ = fzf.communicate()
if fzf.returncode == 0:
target = os.path.abspath(stdout.strip())
if os.path.isdir(target):
self.fm.cd(target)
else:
self.fm.select_file(target)
Ranger 会自动检查所有继承 Command 的类,并调用其中的 execute 方法。剩下的就是修改 rc.conf 中的快捷键,让其绑定这段 python 脚本。编辑 rc.conf,找到:
map f console find%space
将其替换为:
map f fzf_select
考虑到集成了 fzf 以后,find命令基本就不会去碰了,所以替换掉 f 快捷键。你也可以将 fzf 绑定到其他的快捷键。修改完成后保存退出后即可。
⚠️ 6. 注意事项
-
本文仅演示了最常见的配置。用户可根据需求进一步修改配置文件。与 Vim 类似,Ranger 可集成许多其他工具,定制空间很大。
-
修改配置文件后,需要重新启动 Ranger,修改才会生效。
1903

被折叠的 条评论
为什么被折叠?



