Ответ 1
Поиск (например, с помощью /) для \%x1b
.
Вы также можете ввести управляющие символы, включая escape, в командную строку, указав перед ними Ctrl - V. Поэтому введите /, Ctrl-V, Esc, Enter.
Мне нужно очистить файл. У нас есть синтаксический анализатор xml, который работает на нем, который не работает из-за escape-символа (0x1B) в файле. Как использовать vim, чтобы найти, где в файле этот символ, чтобы я мог его удалить?
Файл примера:
<?php
echo "Hello, world.\n";
?>
После преобразования:
0000000: 0a3c 3f70 6870 0a65 6368 6f20 2248 656c .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.?
0000020: 3e0a
Итак, я удаляю char: (в этом примере "H" )
0000000: 0a3c 3f70 6870 0a65 6368 6f20 22 656c .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.?
0000020: 3e0a
Обратите внимание, что первая строка уже недостаточно широка. Когда я его конвертирую, я получаю:
^@<?php
echo "el^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@>
Поиск (например, с помощью /) для \%x1b
.
Вы также можете ввести управляющие символы, включая escape, в командную строку, указав перед ними Ctrl - V. Поэтому введите /, Ctrl-V, Esc, Enter.
Преобразуйте vim в шестнадцатеричный редактор, выполнив [escape] :%!xxd
. Затем выполните поиск 0x1B (/1B
).
Вы можете узнать, что такое шестнадцатеричное значение символа, наведя на него курсор и нажав "ga"
Ниже вы увидите шестнадцатеричное значение персонажа. Пример для символа <╬>
<╬> <| N> 206, Hex ce, октябрь 316, Digr I>
Удалить это с помощью:
% S/\% xce//г