我可以告诉less
以 UTF-8 输出字符:
export LESSCHARSET=UTF-8
但随后它也会尝试以 UTF-8 格式读取文件。
我可以告诉它以 ISO-8859-2 (latin2) 的形式读取文件,但将它们显示为 UTF-8,就像我在 和 设置中所做vim
的enc
那样fenc
?
答案1
看起来这是不可能的。作为部分解决方法,您可以iconv
通过以下方式用作输入预处理器。
- 创建以下可执行脚本,例如
less_conv.sh
:#!/bin/sh iconv -f $IN_ENC -t $OUT_ENC $1
- 定义并导出
LESSOPEN
变量:导出 LESSOPEN="|-less_conv.sh %s"
- 调用
less
方式如下:IN_ENC=latin2 OUT_ENC=utf8 少一些文件
您还可以设置您的首选值:导出 IN_ENC=latin2 导出 OUT_ENC=utf8 少一些文件
|
中的管道字符LESSOPEN
节省了对临时中间文件的需要。破折号在读取标准输入-
时启用此预处理器。less
限制:
即使您点击F
或,预处理器也仅被调用一次R
,因此您将无法在增长文件或“流式传输”标准输入上使用此解决方法。