То, что я хочу, довольно просто, так что, надеюсь, исправление довольно простое. Я хочу, чтобы любой файл, который я открываю в VIM, рассматривал каждый байт как символ низкого ASCII.
Я хочу, чтобы символ отображался нормально, если он соответствует одному из следующих критериев:
- Он имеет графическое представление (так что это не число, буква или пунктуация)
- Это символ новой строки, пробела или табуляции (горизонтальная табуляция, а не vtab)
В противном случае я хочу, чтобы каждый байт отображался в обычном формате Vim для непечатаемого двоичного байта (например, <02>, ^H, ^@ ).
Примечание: этот вопрос похож / связан с этот вопрос , но я спрашиваю это снова здесь, потому что это более широко, это относится здесь, а не SO, и на этот вопрос не было удовлетворительных ответов.
С помощью xxd для такого рода вещей кажется излишним.
Спецификация отображается в виде одного двухбайтового символа
—
Parthian Shot
<feff>, что является совершенно неверным на нескольких уровнях (спецификация составляет три байта, поэтому она ошибочна в отношении длины, в соответствии с этим вопросом я хочу иметь возможность изменять каждый байт индивидуально, поэтому его представление бесполезно, а спецификация фактически 0xefbbbf; это даже не содержит 0xff поэтому представление вводит в заблуждение).
Пытался запустить Vim как
—
jcoppens
LANG=C; vim? Это должно отключить все верхние ASCII.
@jcoppens Не игра в кости, но это хорошее предложение.
—
Parthian Shot
Что вы хотите, чтобы Vim делал с байтами, которые вообще не представлены в ASCII? Предложение использовать
—
Ben
:e ++enc=latin1 в связанном вопросе есть подход, который я бы использовал, но он показывает некоторый символ для байтов со значением, для представления которого требуется 8 бит, тогда как ASCII является 7-битной системой и, следовательно, вообще не может представлять эти символы. Если у вас действительно есть файл только с ASCII-представляемыми байтами, вы можете попробовать прочитать файл в кодировке ASCII (например, в Windows, cp20127), но это даст ошибку преобразования, если в файле есть что-то вроде спецификации.
binaryРежим ответа на этот вопрос (на данный момент последний) удовлетворительный?