курсор(ы) в шестнадцатеричном редактировании с помощью vi/vim

Я знал, что мы можем редактировать файл в шестнадцатеричном формате с помощью vi/vim, используя команду %!xxd (вызов *nix hex dump) и %!xxd -r (выход из *nix hex dump).

Проблема в том, что если я выполняю шестнадцатеричное редактирование в области шестнадцатеричного кода, соответствующий курсор не отображается в области ascii-кода, и наоборот.

Напротив, когда файл редактируется с помощью ghex, есть два курсора, один с текущей операцией редактирования, другой показывает соответствующую позицию на другой панели.

Например, если текстовый файл содержит букву «f», и я использую шестнадцатеричный код для его редактирования, курсор на правой панели покажет, что текущий редактируемый символ — «f», когда я перемещаю курсор в шестнадцатеричный код. значение 0x66 в левой панели.

Эта функция уже существует в vi/vim/xxd, но я не узнал?


person Qiang Xu    schedule 12.11.2012    source источник


Ответы (1)


Чтобы было ясно, xxd не является командой vim; это внешняя программа, которая переводит в/из шестнадцатеричных дампов. Команда %!xxd означает «запустить внешнюю программу xxd, передав ей содержимое этого файла через stdin, и заменить содержимое файла результатом».

Из этого, я надеюсь, вы понимаете, что вы не используете какой-то специальный режим vim для редактирования этих шестнадцатеричных дампов. Шестнадцатеричный дамп — это просто текст, который вы видите, и вы редактируете его как обычный текстовый файл.

Может быть какое-то расширение для vim, которое предоставляет функции, которые вы ищете (я не очень внимательно искал), но, отвечая на ваш вопрос, для этого нет встроенных функций.

person Isaac    schedule 12.11.2012