ranger:vim-like 文件管理器

我是一个 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>
使用其他配置文件目录。

(完)

ranger:vim-like 文件管理器》上有5条评论

  1. icecream

    请问ranger/default/在哪里?

    [回复]

    hc 回复:

    你可以用包管理器查一下你所用发行版中的具体位置。

    [回复]

  2. Angluca

    请问delete可以让他删除至回收站么?

    [回复]

    hc 回复:

    你可以绑定按键 “DD” 到删除至回收站:
    map DD shell mv -t /home/username/Trash-Path %s

    [回复]

发表评论

电子邮件地址不会被公开。