ranger
作者:解琛
时间:2020 年 8 月 29 日
一、安装
sudo apt install ranger # ranger 的主程序;
sudo apt install caca-utils # img2txt 图片;
sudo apt install highlight # 代码高亮;
sudo apt install atool # 存档预览;
sudo apt install w3m # html页面预览;
sudo apt install poppler # pdf预览;
sudo apt install mediainfo # 多媒体文件预览;
sudo apt install catdoc # doc预览;
sudo apt install docx2txt # docx预览;
sudo apt install xlsx2csv # xlsx预览;
sudo apt install pandoc # 文件格式转化;
二、预览配置
ranger默认情况下不会生成配置文件,需要手动生成(拷贝)。
ranger --copy-config=all
这个时候ranger就会生成配置文件目录~/.config/ranger,下面主要有这样几个文件。
rc.conf - 选项设置和快捷键
commands.py - 能通过 : 执行的命令
rifle.conf - 指定不同类型的文件的默认打开程序。
scope.sh - 用于指定预览程序的文件
首先得设置一下文件关联,系统自带的文件关联存在一些问题,其中最主要就是一些自定义文件类型不是很好识别,这个时候最好直接采用系统默认的程序打开,尤其是doc文件。
#找出含有docx的一行,然后将其注释起来:
#ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
has xdg-open, flag f = xdg-open "$1"
这样对于很多扩展文件即可使用系统默认的程序打开了。
然后再修改scope.sh文件,在合适的位置(就是代码相似的位置)添加如下代码:
# Doc documents
doc)
try catdoc "$path" && { dump | trim | fmt -s -w $width; exit 0; }|| exit 1;;
# Docx documents:
docx)
try docx2txt < "$path" && { dump | trim | fmt -s -w $width; exit 0; }|| exit 1;;
# Xlsx documents:
xlsx)
try xlsx2csv "$path" && { dump | trim | fmt -s -w $width; exit 0; }|| exit 1;;
不过很明显的,上述配置仅仅添加了doc、docx、xlsx三种文件预览方式,而对于ppt,pptx以及其它的文件,也可以通过转换成文本的来实现文件预览。
三、功能配置
3.1 删除配置
ranger并没有自带删除的快捷,所以需要手动配置一下。一般情况下,最好使用trash-cli作为删除的命令(相对rm来说要可靠安全得多)。
在打开~/.config/ranger/rc.conf文件,设置快捷键,即可实现用 ”D” 将当前所选文件放到 trash-bin 中去。
map D shell trash %s
3.2 解压缩配置
编辑~/.config/ranger/commands.py文件,添加下面行到文件尾,实现:extract解压选中文件。
class extract(Command):
""":extract <paths>
Extract archives
"""
def execute(self):
import os
fail=[]
for i in self.fm.thistab.get_selection():
ExtractProg='7z x'
if i.path.endswith('.zip'):
# zip encoding issue
ExtractProg='unzip -O gbk'
elif i.path.endswith('.tar.gz'):
ExtractProg='tar xvf'
elif i.path.endswith('.tar.xz'):
ExtractProg='tar xJvf'
elif i.path.endswith('.tar.bz2'):
ExtractProg='tar xjvf'
if os.system('{0} "{1}"'.format(ExtractProg, i.path)):
fail.append(i.path)
if len(fail) > 0:
self.fm.notify("Fail to extract: {0}".format(' '.join(fail)), duration=10, bad=True)
self.fm.redraw_window()
3.3 增加图标
git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
echo export RANGER_LOAD_DEFAULT_RC=FALSE >> ~/.bashrc
source ~/.bashrc
四、使用方法
ranger 中有按键和命令两种操作方式。
- 按键是直接键入键盘上的键完成某个操作;
- 命令需前输入
:
,然后输入相应的命令;
输入 “?”(不含引号)可以查看帮助信息。
4.1 快捷键
快捷键 | 说明 |
---|---|
h | 向左移动; |
j | 向下移动; |
k | 向上移动; |
l | 向右移动; |
H | 回退到上一个历史记录; |
L | 前进到下一个历史记录; |
Ctrl + U | 向上翻半页; |
Ctrl + D | 向下翻半页; |
gg | 跳到行首; |
G | 跳到行尾; |
% | 跳到页中; |
cd | 跳转到目录; |
/ | 打开搜索栏,然后输入要搜索的字符串,回车后开始搜索; |
n | 查找下一个结果; |
N | 查找上一个结果; |
cc | 按时间先后依次遍历; |
cm | 按类型属性依次遍历; |
cs | 按大小依次遍历; |
t | 标记、取消标记条目; |
ct | 搜索已经标记的文件; |
oc | 按时间排序; |
om | 按修改时间排序排序; |
os | 按大小排序; |
ob | 按名称排序; |
ot | 按文件类型排序; |
or | 反向排序; |
m | 保存书签; |
` | 跳到书签; |
gn, Ctrl + N | 新建一个标签页; |
gt | 跳到下一个标签页; |
gT | 跳到上一个标签页; |
gc, Ctrl + W | 关闭当前标签页,最后一个标签页不能关闭; |
v | 反选; |
V, uv | 取消所有选择; |
i | 查看文件的内容,打开选中的文件夹; |
E | 调用默认编辑器编辑文件; |
cw, :rename | 重命名; |
I | 附加当前文件名,将光标置于文件名之前; |
A | 附加当前文件名,将光标置于文件名之后; |
yy | 复制; |
dd | 剪切; |
pp | 粘贴,当存在同名文件时,会自动重命名; |
po | 粘贴,覆盖同名文件; |
pl | 创建一个被复制文件的符号链接; |
pL | 创建一个被复制/剪切文件的符号链接(相对路径); |
:delete | 删除选中条目,如果删除的文件不止一个,ranger 会提示确认删除,键入 “y” 即可; |
:delete y | 在输入命令时附加一个参数 “y”,跳过 ranger 的确认; |
r, :open_with | 用指定程序打开文件; |
S | 在当前目录下开启一个 shell; |
w | 打开、关闭任务视图; |
dd | 终止一个任务; |
J | 降低当前任务的优先级; |
K | 提升当前任务的优先级; |
: 命令 | 命令以 : 开头,所有命令被定义在文件 ranger/defaults/commands.py 中; |
W | 打开 message log; |
du | 显示当前目录的磁盘占用情况; |
R | 刷新当前目录; |
Ctrl + R | 清空缓存并刷新目录; |
Ctrl + L | 重画当前窗口; |