博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ranger安装hbase插件_ranger的配置与使用
阅读量:6270 次
发布时间:2019-06-22

本文共 4113 字,大约阅读时间需要 13 分钟。

ranger 是一个基于文本的由 Python 编写的文件管理器。不同层级的目录分别在一个面板的三列中进行展示. 可以通过快捷键, 书签, 鼠标以及历史命令在它们之间移动. 当选中文件或目录时, 会自动显示文件或目录的内容.

主要特性有: vi 风格的快捷键, 书签, 选择, 标签, 选项卡, 命令历史, 创建符号链接的能力, 多种终端模式, 以及任务视图. ranger 可以定制命令和快捷键,包括绑定到外部脚本。最接近的竞争者是 Vifm, 它有 2 个面板以及 vi 风格的快捷键,但是总体特性相对较少1

一、ranger的基本安装

首先开始安装ranger及相关的预览插件:

$ sudo apt-get install ranger     # ranger 的主程序$ sudo apt-get install caca-utils # img2txt 图片$ sudo apt-get install highlight  # 代码高亮$ sudo apt-get install atool     # 存档预览$ sudo apt-get install w3m        # html页面预览$ sudo apt-get install poppler    # pdf预览$ sudo apt-get install mediainfo  # 多媒体文件预览

这个时候ranger的默认配置对于图片,存档,html和pdf以及多媒体已经有了相当多的预览功能了,但是对于doc等文件还是相当的不友好,需要进一步的配置。

二、基本使用方法

下面是几个快捷键:

快捷键命令?列出帮助1?列出所有快捷键2?列出所有命令l,enter使用文件关联方式打开文件

三、预览配置

首先需要下载能够将对应格式的文件转化为txt的程序:

$ sudo apt-get install catdoc     # doc预览$ sudo apt-get install docx2txt   # docx预览$ sudo apt-get install xlsx2csv   # xlsx预览

当然了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以及其它的文件,也可以通过转换成文本的来实现文件预览。

四、功能配置

4.1 删除配置

ranger并没有自带删除的快捷,所以需要手动配置一下.一般情况下,最好使用trash-cli作为删除的命令(相对rm来说要可靠安全得多).

在打开~/.config/ranger/rc.conf文件,然后在最后面添加

map D shell trash %s

即可实现用”D”将当前所选文件放到trash-bin中去.

4.2 解压缩配置

编辑~/.config/ranger/commands.py文件,添加下面行到文件尾,实现:extract解压选中文件.

class extract(Command):    """:extract 
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()

很明显,上面少了很多压缩包的解压方式,如rar之类的,但是可以按照格式,自行添加相应的解压命令.

4.3 压包设置

同样的,将下面内容复制到~/.config/ranger/command.py的末尾,即可实现:compress压缩选中的文件.

import osfrom ranger.core.loader import CommandLoaderclass compress(Command):    def execute(self):        """ Compress marked files to current directory """        cwd = self.fm.thisdir        marked_files = cwd.get_selection()        if not marked_files:            return        def refresh(_):            cwd = self.fm.get_directory(original_path)            cwd.load_content()        original_path = cwd.path        parts = self.line.split()        au_flags = parts[1:]        descr = "compressing files in: " + os.path.basename(parts[1])        obj = CommandLoader(args=['apack'] + au_flags +                 [os.path.relpath(f.path, cwd.path) for f in marked_files], descr=descr)        obj.signal_bind('after', refresh)        self.fm.loader.add(obj)    def tab(self):        """ Complete with current folder name """        extension = ['.zip', '.tar.gz', '.rar', '.7z']        return ['compress ' + os.path.basename(self.fm.thisdir.path) + ext for ext in extension]

同样的,上面也只支持上面四种压缩方式,对于其它的压缩方式,需要自行添加.

四、结语

当然ranger可定制能力还是非常强,更多的情况可以参考archwiki1,里面有着更多的定制说明。

转载地址:http://dtspa.baihongyu.com/

你可能感兴趣的文章
ftp的20 21端口和主动被动模式
查看>>
MySQL存储引擎选型
查看>>
Java中的statickeyword具体解释
查看>>
Linux车载系统的开发方向
查看>>
并发编程之五--ThreadLocal
查看>>
摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置
查看>>
iOS播放短的音效
查看>>
[java] java 线程join方法详解
查看>>
JQuery datepicker 用法
查看>>
golang(2):beego 环境搭建
查看>>
天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块
查看>>
程序员社交宝典
查看>>
ABP理论学习之MVC控制器(新增)
查看>>
Netty中的三种Reactor(反应堆)
查看>>
网页内容的html标签补全和过滤的两种方法
查看>>
前端源码安全
查看>>
【CodeForces 618B】Guess the Permutation
查看>>
【转】如何实现一个配置中心
查看>>
Docker —— 用于统一开发和部署的轻量级 Linux 容器【转】
查看>>
Threejs 官网 - Three.js 的图形用户界面工具(GUI Tools with Three.js)
查看>>