我经常需要将我在 vim 中编辑的文本的一小部分从十六进制转换为 ascii 或其他方式。我知道我可以通过 xxd 通过管道传输文本来完成此操作,但我希望以一种直观的方式自动选择一些文本,然后使用快捷方式将所选文本转换为十六进制/ascii。
例如,如果我选择 123 Foo
,我想将其转换为 31323320466f6f
。
有没有 vim 插件可以做到这一点?我可以使用一些函数来做到这一点吗?
最佳答案
这里有一个映射,可以为您做到这一点:
vnoremap ; :<c-u>s/\%V./\=printf("%x",char2nr(submatch(0)))/g<cr><c-l>`<
您可以将 ;
更改为您想要的任何组合。
编辑:
您可以按照@CyberMuz 的评论中所述反转:
vnoremap u :<c-u>s/\%V\x\x/\=nr2char(printf("%d", "0x".submatch(0)))/g<cr><c-l>`<
关于vim - 在VIM中将ascii转换为hex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684733/