Como criar uma entrada válida para "xxd -r" no vim ao remover um byte?
Crie um arquivo chamado comotest
contendo o seguinte conteúdo:
0123456789abcdef0123456789abcdef
Quero remover o primeiro0
com o uso do xxd. Abra comvim -b test
então corra:%!xxd
dentro do vim. O resultado é:
0000000: 3031 3233 3435 3637 3839 6162 6364 6566 0123456789abcdef
0000010: 3031 3233 3435 3637 3839 6162 6364 6566 0123456789abcdef
0000020: 0a .
Então eu removo o código hexadecimal30
pela primeira vez0
:
0000000: 31 3233 3435 3637 3839 6162 6364 6566 0123456789abcdef
0000010: 3031 3233 3435 3637 3839 6162 6364 6566 0123456789abcdef
0000020: 0a .
Então eu corro:%!xxd -r
para ler o hexadecimal. O resultado é:
^@23456789abcdef^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
O resultado é ilegível. Eu sei que o motivo é que o conteúdo acima não é uma entrada xxd válida. Se eu remover os números de linha e a parte do texto:
31 3233 3435 3637 3839 6162 6364 6566
3031 3233 3435 3637 3839 6162 6364 6566
0a
Eu corro:%!xxd -r -p
para ler o hexadecimal. E o resultado está correto:
123456789abcdef0123456789abcdef
Existe uma maneira melhor de fazer esse trabalho com o uso do vim e do xxd? Uma maneira melhor significa menos edição para fazer uma entrada válida paraxxd -r
.