一、使用 brew 命令安装
brew install ranger
插件
brew install libcaca highlight atool lynx w3m elinks poppler transmission mediainfo exiftool
二、配置支持图片查看
我是安装到(自己选择目录): /opt/software/ranger_imgcat/。
vim imgact
#!/bin/bash
function print_osc() {
if [[ $TERM == screen* ]]; then
printf "\033Ptmux;\033\033]"
else
printf "\033]"
fi
}
function print_st() {
if [[ $TERM == screen* ]]; then
printf "\a\033\\"
else
printf "\a"
fi
}
function load_version() {
if [ -z ${IMGCAT_BASE64_VERSION+x} ]; then
IMGCAT_BASE64_VERSION=$(base64 --version 2>&1)
export IMGCAT_BASE64_VERSION
fi
}
function b64_encode() {
load_version
if [[ $IMGCAT_BASE64_VERSION =~ GNU ]]; then
base64 -w0
else
base64
fi
}
function b64_decode() {
load_version
if [[ $IMGCAT_BASE64_VERSION =~ fourmilab ]]; then
BASE64ARG=-d
elif [[ $IMGCAT_BASE64_VERSION =~ GNU ]]; then
BASE64ARG=-di
else
BASE64ARG=-D
fi
base64 $BASE64ARG
}
function print_image() {
print_osc
printf '1337;File='
if [[ -n $1 ]]; then
printf "name=%s;" "$(printf "%s" "$1" | b64_encode)"
fi
printf "%s" "$3" | b64_decode | wc -c | awk '{printf "size=%d",$1}'
printf ";inline=%s" "$2"
printf ":"
printf "%s" "$3"
print_st
printf '\n'
if [[ -n $4 ]]; then
echo "$1"
fi
}
function error() {
echo "ERROR: $*" 1>&2
}
function show_help() {
echo "Usage: imgcat [-p] filename ..." 1>&2
echo " or: cat filename | imgcat" 1>&2
}
function check_dependency() {
if ! (builtin command -V "$1" >/dev/null 2>&1); then
echo "imgcat: missing dependency: can't find $1" 1>&2
exit 1
fi
}
if [ -t 0 ]; then
has_stdin=f
else
has_stdin=t
fi
if [ $has_stdin = f ] && [ $# -eq 0 ]; then
show_help
exit
fi
check_dependency awk
check_dependency base64
check_dependency wc
while [ $# -gt 0 ]; do
case "$1" in
-h | --h | --help)
show_help
exit
;;
-p | --p | --print)
print_filename=1
;;
-u | --u | --url)
check_dependency curl
encoded_image=$(curl -s "$2" | b64_encode) || (
error "No such file or url $2"
exit 2
)
has_stdin=f
print_image "$2" 1 "$encoded_image" "$print_filename"
set -- "${@:1:1}" "-u" "${@:3}"
if [ "$#" -eq 2 ]; then
exit
fi
;;
-*)
error "Unknown option flag: $1"
show_help
exit 1
;;
*)
if [ -r "$1" ]; then
has_stdin=f
print_image "$1" 1 "$(b64_encode <"$1")" "$print_filename"
else
error "imgcat: $1: No such file or directory"
exit 2
fi
;;
esac
shift
done
if [ $has_stdin = t ]; then
print_image "" 1 "$(cat | b64_encode)" ""
fi
exit 0
把imgcat放到path中方便调用
chmod +x imgcat
cp imgcat /usr/local/bin/
ranger --copy-config=all
日志如下:
creating: /Users/u/.config/ranger/rifle.conf
creating: /Users/u/.config/ranger/commands.py
creating: /Users/u/.config/ranger/commands_full.py
creating: /Users/u/.config/ranger/rc.conf
creating: /Users/u/.config/ranger/scope.sh
> Please note that configuration files may change as ranger evolves.
It's completely up to you to keep them up to date.
> To stop ranger from loading both the default and your custom rc.conf,
please set the environment variable RANGER_LOAD_DEFAULT_RC to FALSE.
图片预览效果如下
Ranger配置详情
cd ~/.config/ranger
-rw-r--r-- 1 u staff 2.7K 11 21 21:20 commands.py
-rwxr-xr-x 1 u staff 61K 11 21 21:20 commands_full.py
-rw-r--r-- 1 u staff 24K 11 21 21:20 rc.conf
-rw-r--r-- 1 u staff 14K 11 21 21:20 rifle.conf
-rwxr-xr-x 1 u staff 13K 11 21 21:20 scope.sh
- commands.py:与以下命令一起启动的命令 :
- commands_full.py:全套命令
- rc.conf:配置和绑定
- rifle.conf:文件关联(用于打开文件的程序)
- scope.sh:负责各种文件预览
目前,对我们来说唯一重要的文件是rc.conf。在您喜欢的编辑器中将其打开,并更改以下两行,如下所示:
set preview_images false 修改成 set preview_images true
set preview_images_method w3m 修改成 set preview_images_method iterm2
配置环境变量
vim ~/.zshrc export RANGER_LOAD_DEFAULT_RC=FALSE
增加图标显示
git clone https://github.com/alexanderjeurissen/ranger_devicons ~/.config/ranger/plugins/ranger_devicons
echo "default_linemode devicons" >> $HOME/.config/ranger/rc.conf
显示边框线
set draw_borders true
效果如下
Ranger 常用命令
快捷键 | 含义 |
---|
H | 后退 |
L | 前进 |
gg | 跳到顶端 |
G | 跳到底端 |
gh | go home |
gn | 新建标签 |
f | 查找 |
/ | 搜索 |
g | 快速进入目录 |
yy | 复制 |
dd | 剪切 |
pp | 粘贴 |
delete | 删除 |
cw | 重命名 |
A | 在当前名称基础上重命名 |
I | 类似A,光标会跳到起始位置 |
Ctrl-f | 向下翻页 |
Ctrl-b | 向上翻页 |
m | 新建书签 |
` | 打开书签 |
um | 删除书签 |
gn /C-n | 新建标签 |
TAB / S-TAB | 切换标签 |
gc / C-w | 关闭标签 |
on /ob | 根据文件名进行排序 |
oc | 根据改变时间进行排序 |
os | 根据文件大小排序 |
ot | 根据后缀名进行排序 |
oa | 根据访问时间进行排序 |
om | 根据修改进行排序 Modify Time |
zh/back | 显示隐藏文件 |
参考
https://blog.csdn.net/lxyoucan/article/details/115671189
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)