LINUX.ORG.RU

Как показать символы с кодами ниже 32?

 ,


0

2

В Norton Commander и FAR при выборе досовских кодовых таблиц для байтов с кодами 1-31 показываются всякие символы типа стрелок, рожиц, нот и пр. Midnight Commander все такие символы заменяет точками. Существует ли способ выводить такие же символы для этих значений в MC? Сойдёт и пропускание файла через sed (регэксп есть), главное чтобы работало и в HEX-режиме.

Уточнение: можно прописать в mc.ext строки наподобие (вместо cp866 годятся cp437 и др.):

regex/\.dat
        View=%view{ascii} cat %f | iconv -f cp866 | sed 's/\x0d\x0a/\x0a/g' | sed 'y/\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f/\x20☺☻♥♦♣♠•◘○◙♂♀\x0a♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼⌂/'
Но в этом случае в 16-ричном режиме вместо 01 будет показываться «E2 98 BA», а справа за ☺ будут следовать 2 пробела.

★★★★★

Последнее исправление: question4 (всего исправлений: 3)

разве что найти аналогичные символы в юникоде, и заменить коды 1..31 на них.

например:

echo -e '\x03' | perl -pe 's/\x03/\xe2\x9d\xa4/'
❤
waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 2)

ой, извини, я не понял, что ты и так понимаешь как трансформировать, но не знаешь как это воткнуть именно в mc.

этого я тоже не знаю.

waker ★★★★★
()

кстати, дело там совсем не в кодировках, а в том что в досе и вендовой консоли есть возможность писать прямо в буфер консоли, без обработки контрольных символов.

мне почему-то казалось, что в линуховых эмуляторах тоже это должно работать, но видимо нет.

есть вероятность, что этих символов вообще в линуховых шрифтах/знакогенераторах нету. но я не проверял.

waker ★★★★★
()

нужен именно mc? или подойдет и less с соответственным LESSOPEN= и отменой внутреннего просмотрщика?

ananas ★★★★★
()
Ответ на: комментарий от waker

есть вероятность, что этих символов вообще в линуховых шрифтах/знакогенераторах нету. но я не проверял.

Есть идентичные символы Unicode, можно заменять на них. Вопрос в том, как сделать, чтобы в HEX-режиме показывало именно их. Это возможно?

question4 ★★★★★
() автор топика
Ответ на: комментарий от ananas

нужен именно mc? или подойдет и less с соответственным LESSOPEN= и отменой внутреннего просмотрщика?

Для less уже есть :)

question4 ★★★★★
() автор топика
Ответ на: комментарий от arson

Смотри через редактор (F4)

Тогда он их заменяет на 2-символьные последовательности вроде ^@, что тоже неудобно.

question4 ★★★★★
() автор топика
Ответ на: комментарий от waker

есть вероятность, что этих символов вообще в линуховых шрифтах/знакогенераторах нету. но я не проверял.

Уточню: эти символы есть в шрифтах, доступных в иксовых терминалах. Но если проводить такую замену, в 16-ричном режиме показывают не код исходного символа, а многобайтный код символа, на который заменили. Кроме того, ползёт форматирование.

question4 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.