vim - 在VIM中将ascii转换为hex

标签 vim hex vi

我经常需要将我在 vim 中编辑的文本的一小部分从十六进制转换为 ascii 或其他方式。我知道我可以通过 xxd 通过管道传输文本来完成此操作,但我希望以一种直观的方式自动选择一些文本,然后使用快捷方式将所选文本转换为十六进制/ascii。

例如,如果我选择 123 Foo,我想将其转换为 31323320466f6f。 有没有 vim 插件可以做到这一点?我可以使用一些函数来做到这一点吗?

最佳答案

这里有一个映射,可以为您做到这一点:

vnoremap ; :<c-u>s/\%V./\=printf("%x",char2nr(submatch(0)))/g<cr><c-l>`<

您可以将 ; 更改为您想要的任何组合。

编辑:

您可以按照@Cyber​​Muz 的评论中所述反转:

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/

相关文章:

vim - 在哪里可以找到 vim 对某种语言(例如 Ruby)的理解的定义?

c++ - 以最有效的形式将 32 位值存储为 C 字符串

VIM - 从项目中的多个位置采购标签

vim - 在 VIM 中将空格还原为 TAB 的最快方法

ruby - 当我将 ruby​​ 更新到 2.0.0-p0 时,我的 vim 无法工作

vim - 如何在 vim 中从 block 的开头转到 C block 的末尾,反之亦然?

string - fmt.Sscanf无法正确读取十六进制

javascript - 在 Node JS 中从 DEC 转换为 HEX 时保留零字符

windows - 为 Unix 系统转换 Windows .cpp 文件?

Vim 拉动行范围