Как заставить Vim интерпретировать только печатные символы ASCII?

0

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

Я хочу, чтобы символ отображался нормально, если он соответствует одному из следующих критериев:

  • Он имеет графическое представление (так что это не число, буква или пунктуация)
  • Это символ новой строки, пробела или табуляции (горизонтальная табуляция, а не vtab)

В противном случае я хочу, чтобы каждый байт отображался в обычном формате Vim для непечатаемого двоичного байта (например, <02>, ^H, ^@ ).

Примечание: этот вопрос похож / связан с этот вопрос , но я спрашиваю это снова здесь, потому что это более широко, это относится здесь, а не SO, и на этот вопрос не было удовлетворительных ответов.

С помощью xxd для такого рода вещей кажется излишним.

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