如何在vim中用十六进制值填充二进制文件?

如何在vim中用十六进制值填充二进制文件?,vim,Vim,在主题上一样 我想在vim中用给定的值填充二进制文件的一部分(基址+偏移量) 例如,我想从address0x0fff开始添加1M的0xfd值 我可以使用什么命令 通过vim-b{filespec}或通过:edit++bin{filespec}以二进制模式打开文件 使用Go命令或:goto转到字节索引0x0fff。您需要转换为十进制,例如::exe'goto'0x0fff 插入值;您可以向i命令提供[count],并通过:help i\u CTRL-V\u digit:1048576ixfd 写入

在主题上一样

我想在vim中用给定的值填充二进制文件的一部分(基址+偏移量)

例如,我想从address
0x0fff
开始添加1M的
0xfd

我可以使用什么命令

  • 通过
    vim-b{filespec}
    或通过
    :edit++bin{filespec}
    以二进制模式打开文件
  • 使用
    Go
    命令或
    :goto
    转到字节索引
    0x0fff
    。您需要转换为十进制,例如:
    :exe'goto'0x0fff
  • 插入值;您可以向
    i
    命令提供
    [count]
    ,并通过
    :help i\u CTRL-V\u digit
    1048576ixfd
  • 写入文件并退出
    :wq
  • Vim中的另一种选择是使用中间十六进制转储格式,并通过Vim附带的
    xxd
    工具进行来回转换。有关详细信息,请参阅


    因此,尽管Vim不是实现这一点的完美工具(如评论中所述,十六进制编辑器是正确/更好的工具),但它是可以做到的。

    为什么在Vim中?vim是一个文本编辑器,对二进制文件格式不太友好。因为我使用gvim…?您最好看看像khexedit这样的专用十六进制编辑器,但如果您坚持使用vim,请看这里