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.

questionAnswers(1)

yourAnswerToTheQuestion