我是一个 CLI 控,但一直苦于没有一个好用的文件管理器。虽然 vifm 的 vim 键绑定很合我的胃口,但它实在不好用。所以我一直没有停止过寻找类似软件的念头。直到尝试了 Ranger, 觉得很不错。功能很全,扩展/可配置性也不错,还有 vim 的键绑定、多列文件管理方式、支持多标签页。实时预览文本文件和目录,等等……
一,安装:
ranger 在 Arch 的 Community 仓库中。可以使用 pacman 直接安装。
sudo pacman -S ranger
二,使用 ranger:
ranger 中有按键和命令两种操作方式,按键是直接键入键盘上的键完成某个操作,命令则需前输入 “:”,然后输入相应的命令。
输入 “?”(不含引号)可以查看帮助信息:
?: 查看帮助
1,浏览文件
1),移动光标
k: 向上移动 j: 向下移动 h: 向左移动(在浏览文件夹的时候,它表示回到上一级目录) l: 向右移动(在光标处于一个文件夹上时,进入这个目录。处于一个文件上,则打开该文件)
这四个键等同键盘上的方向键,不过用起来更高效。
H: 后退到上一个历史记录 L: 前进到下一个历史记录
Ctrl + U: 向上翻半页 Ctrl + D: 向下翻半页
gg: 跳到页首 G: 跳到页尾 %: 跳到页中
和 vim 一样,指令之前可以指定一个数字,表示执行多少次指令。例如:
5(Ctrl + D): 向下翻5个半页 3h: 向上跳3级目录 6gg or 6G: 跳到第6行 20%: 跳到当前页的 20% 处
cd: 跳转到目录,同 ":cd"
gl: 如果当前条目是一个符号链接,那么跳到它的原始位置
2),搜索
按下 “/” 打开搜索栏,然后输入要搜索的字符串,回车后开始搜索。
“n” 查找下一个结果,”N” 查找上一个搜索结果。
你也可以通过其他属性来搜索文件:
cc: 通过 ctime 属性依次遍历 cm: 通过 mime type 属性依次遍历 cs: 通过 size 属性依次遍历 ct: 搜索已标记的文件
3),排序
os: 按大小排序 ob: 按名称排序 ot: 按文件类型排序 om:? 按 mtime(上一次修改文件内容的时间) 排序
ranger 默认是以升序排列文件,你可以键入 “or” 使 ranger 以降序排列文件:
or: 反向排序
4),书签
你可以设置一个书签以便快速的进入某个目录。
m<key>: 保存书签 `<key>: 跳到书签
<key> 可以是任意的数字或字母。而且也 vim 不同,这写书签是永久保存的。
注:
1, “ ` ”(键盘 “1” 左边的键) 和 ” ‘ “(单引号) 是等效的。
2, “`” 本身也是一个书签,代表上一次跳转的位置。你可以键入 ““” 跳到上一个跳转的位置。
5),标签页(tab)
ranger 支持多个标签页,可以快速地在多个标签页之间切换。
gn, Ctrl + N: 新建一个标签页 gt: 跳到下一个标签页 gT: 跳到上一个标签页 g<N>: 打开一个标签页,<N> 代表1到9的一个数字。如果这个标签页不存在的话,ranger 会自动创建。 gc, Ctrl + W: 关闭当前标签页,最后一个标签页不能关闭。
2,操作文件
1),选择文件
ranger 可以方便快速地选择多个文件。
: 选择一个文件,之后光标会自动跳到下一个条目 v: 反选 V or uv: 取消所有选择
Ctrl + V: 从某个位置开始选择 u(Ctrl + V): 取消选择到某个位置
例如: (Ctrl + V) + gg: 选择从当前位置到顶部的所有条目, (Ctrl + V) + G: 选择从当前位置到底部的所有条目。u(Ctrl + V) 用法类似。
t: 标记/取消标记选择的条目 T: 取消标记选择的条目
2),查看文件
i: 查看当前文件的内容(文本文件)
3),编辑文件
E: 调用默认编辑器编辑文件
4),处理文件
:rename: 重命名 cw: 同 “:rename” A: 重命名,附加当前文件名 I: 同 “A”,但会将光标置于文件名之前
yy: 复制 dd: 剪切 pp: 粘贴,当存在同名文件时,会自动重命名。 po: 粘贴,覆盖同名文件 pl: 创建一个被复制/剪切文件的符号链接。 pL: 创建一个被复制/剪切文件的符号链接(相对路径)。
:delete 删除选定的条目
如果删除的文件不止一个,ranger 会提示确认删除,键入 “y” 即可。也可以在输入命令时附加一个参数 “y”,跳过 ranger 的确认。
:delete y
5),运行文件
l: 打开选定文件,同
如果没有选定文件的话,则打开当前文件。
ranger 根据 apps.py 里面的定义来判断用什么程序来打开相应的文件。如果用户目录里没有文件 apps.py 的话,可以从 ranger/defaults/apps.py 复制到 ~/.config/ranger/ 下面。
如果 ranger 不知道用什么程序打开相应文件,会出现 “:open_with” 对话框询问用户。
也可以直接使用命令 ”r“ 打开 ”:open_with“ 对话框。
r: 用指定程序打开文件,同命令 ”:open_with“
:open_with 语法:
:open_with <program> <mode> <flags>
<program>: 需要在 apps.py 中定义,CustomApplications 中每一个以 “app_” 开头的函数会被命令 “:open_with” 用到。
<mode>: ranger 以何种模式运行程序。可用的 mode 有:
0: 窗口模式 1: 全屏模式
<flags>: 指定 ranger 以何种方式调用程序。
s: silence 模式。任何输出将被丢弃。 d: 分离程序(在后台运行)。 p: 将输入重定向到 pager 。 w: 当程序执行完成时需要用户回车确认。
大写 flag 可以得到相反的作用,例如一个程序如果默认就在后台运行,那么可以使用 “:open_with D” 来防止其在后台运行。
按键 “S” 在当前目录下开启一个 shell :
S: 在当前目录下开启一个 shell 。
3,任务管理
在执行某些操作(比如复制一个大文件)时不能立即完成,这在 ranger 中就是一个任务。你可以停止、启动某个任务,也可以对某个任务设置优先级。
w: 打开/关闭任务视图 dd: 终止一个任务 J: 降低当前任务的优先级 K: 提升当前任务的优先级
4,命令
命令以 “:” 开头。输入时可用 <Tab> 键补全,如果有多个匹配的,ranger 会依次遍历所有匹配项。
所有命令被定义在文件 ranger/defaults/commands.py 中。
可用的命令:
:cd <dirname> 跳转到目录 <dirname> :chmod <octal_number> 设置被选条目的权限 :delete 删除被选条目 :edit <filename> 编辑文件 :filter <string> 只显示文件名中含有给定字符串 <string> 的文件 :find <regexp> 查找匹配给定正则表达式的文件,并且执行第一个匹配的文件 :grep <string> 在选定的条目中查找给定的字符串 <string> :mark <regexp> 选定匹配正则表达式的所有文件 :unmark <regexp> 取消选定匹配正则表达式的所有文件 :mkdir <dirname> 创建目录 :open_with <program< <mode> <flags> 用给定的 <program>、<mode> 和 <flags> 打开文件。 所有参数都是可选的,未给出任何参数的时候,等价于 <Enter> 。 :quit 退出 quit :rename <newname> 重命名当前文件 :search <regexp> 搜索所有匹配正则表达式 <regexp> 的文件,相当与 vim 中的 “/”。快捷键: "/" :shell [-<flags>] <command> 运行命令 <command> :touch <filename> 创建文件
所有的命令(”:delete” 除外),可以不用写全,不过前提是和之匹配的命令只有一个。
5,杂项
z: 切换设置 u: 撤销操作 W: 打开 message log du: 显示当前目录的磁盘占用情况 R: 刷新当前目录 Ctrl + R: 清空缓存并刷新目录。 Ctrl + L: 重画当前窗口。
6,命令行参数
--version 打印 ranger 的版本。 -h, --help 打印帮助信息。 -d, --debug 以 debug 模式启动 ranger ,当出错退出时,ranger 会输出所有信息。 -c, --clean 以 clean 模式启动 ranger ,ranger 不会读取和创建配置文件。 --copy-config <all|apps|commands|keys|options|scope> 复制 ranger 的配置文件到 home 目录,已经存在的文件不会被覆盖。 -r <dir>, --confdir=<dir> 使用其他配置文件目录。