Похоже, что это невозможно.
В качестве частичного обходного пути вы можете использовать iconv
в качестве входного препроцессора следующим образом.
less_conv.sh
:
#!/bin/sh iconv -f $IN_ENC -t $OUT_ENC $1
LESSOPEN
:
export LESSOPEN="|-less_conv.sh %s"
less
таким образом:
IN_ENC=latin2 OUT_ENC=utf8 less somefileВы также можете установить свои предпочтительные значения:
export IN_ENC=latin2 export OUT_ENC=utf8 less somefile
Символ трубы |
в LESSOPEN
избавляет от необходимости создания временного промежуточного файла. Тире -
включает этот препроцессор, когда less
читает стандартный ввод.
Limitation:
Препроцессор вызывается только один раз, даже если вы нажмете F
или R
, поэтому вы не сможете использовать это обходное решение для растущих файлов или "потокового" стандартного ввода.