`
jywhltj
  • 浏览: 44733 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Vim 十六进制编辑

    博客分类:
  • vim
阅读更多

开始十六进制编辑

要在 vim 中开始十六进制编辑,可通过如下命令

:e ++bin ++enc=ansi | %!xxd -g1
:set ft=xxd

“|”是 vim 多个命令的分隔符,这实际上是三个命令。

 

其中最关键的命令是

%!xxd -g1

它是对当前编辑的文件调用命令“xxd -g1”然后编辑该命令的输出,需要注意的是被编辑的文件没有变,如果此时保存的话,将会这些十六进制信息对应的文本替换原文件。

 

“xxd -g1”的作用是以单个字节为单位按十六进制方式列出文件内容。

 

再看第一条命令:

e ++bin ++enc=ansi

 作为文本编辑器,vim 打开一个文件默认是以文本的方式,而我们之所以要进行十六进制编辑通常是因为文件是二进制的,若以文本方式编辑会是有损转换。所以需要以二进制方式重新加载文件,即命令“e ++bin”,“++bin”参数指示二进制方式。同样道理为避免编码转换带来的损失,需以 8bit 编码识别文件,“++enc=ansi”参数指示识别 ISO-8859-1(vim 中别名 ansi、latin1)编码,该编码是一种 8bit 编码。此后再调用第二个命令“%! xxd -g1”转十六进制则即是无损转换。

 

第三条命令:

set ft=xxd

 的作用是切换语法类型为 xxd,以刷新语法高亮。如果未执行该命令,语法高亮还会按照之前的文件类型,可能看起来会是混乱的。


结束十六进制编辑

上文提到了,再开始十六进制编辑之后若保存的话将会以十六进制文本替换原文件。如果要想保存十六进制编辑的变更需要还原为原始的二进制,命令为:

%!xxd -r

 即对当前文件调用命令“xxd -r”,其作用就是将十六进制信息还原。


插入/删除

vim 通过上述方式调用外部命令“xxd”方式实现的十六进制编辑,不适合有插入/删除操作的编辑,通常只适用于只读查看或者覆盖式编辑。

 

如果需要插入/删除操作,可调整下开始/结束编辑命令分别用:

:e ++bin ++enc=ansi | %!xxd -i
:set ft=c
 :%!xxd -r -p

 这样其格式跟传统的十六进制编辑工具格式不大一样,但便于插入/删除操作。

分享到:
评论

相关推荐

    matlab十六进制转十进制代码-conf:conf

    matlab十六进制转十二进制代码 Vim,Bash等al。 该存储库包含我的个人配置文件。 还有一些东西。 编程技巧 Vim 一般提示 Ca Cx:在正常模式下,当光标位于数字上时,可以通过分别执行来增加或减少它 CTRL-a CTRL-x ...

    vinarise.vim:带有 Vim 的终极十六进制编辑系统

    维纳瑞斯 在 Vim 脚本中实现的十六进制编辑器 注意:vinarise.vim 上的活跃开发已经停止。 未来唯一的变化将是错误修复。 请参阅 。

    hexdino:具有Vim的十六进制编辑器,如用Rust编写的键绑定

    具有vim的十六进制编辑器,如用Rust编写的键绑定。 依存关系 诅咒 建造 的Ubuntu sudo apt install libncursesw5-dev cargo cargo build 尼克索斯 创建default.nix with import < nixpkgs> {} ; { hexdinoEnv = ...

    deorise.nvim:用于Neovim的深色十六进制编辑器界面

    它提供了十六进制编辑功能。安装注意:要使用Deorise,需要Neovim 0.3.0+或带有Python3.8.0 +的Vim8.1 +。 如果不确定是否有此,请参阅。 解压缩文件并将其放入Neovim目录(通常$XDG_CONFIG_HOME/nvim/ )。 执行:...

    基于Ncurses的十六进制编辑器-开源

    基于Ncurses的十六进制编辑器,具有类似vi / vim的界面。 功能包括大文件支持,搜索突出显示,多个撤消/重做,视觉选择,剪切/粘贴,blob着色,文件选项卡等等。

    Windows下的文本编辑器-flexedit

    FlexEdit Windows下的文本/十六进制编辑器,为编程人员提供方便强大的文本/十六进制编辑器。FlexEdit为公益软件,免费使用,没有任何功能限制。 基于Scitilla的强大的编辑功能 能够高亮显示的语言列表有:ada, asm,...

    好用的编辑器

    UltraEdit是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,可以取代记事本,内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。 说到编辑器的快捷键,VIM是...

    happy1952#articles#Linux 下如何创建并编辑一个二进制文件1

    Linux 下如何创建并编辑一个二进制文件创建二进制文件创建一个2个字节的二进制文件编辑文件将格式转换为十六进制(VIM 编辑器中操作)文件内容如下:修改文件内

    viaje:Vim不是可接受的Jex编辑器

    威盛 Vim不是可接受的Jex编辑器...我尚未编写任何文件类型自动检测规则,因此,现在您必须通过设置文件类型来手动打开十六进制编辑模式: :set ft=xxd 您会看到以下内容: 00000000: 7f45 4c46 0201 0100 0000 0000

    UltraEdit常用快捷键大全

    UltraEdit是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,可以取代记事本,内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。 说到编辑器的快捷键,VIM是...

    monokai:Monokai 颜色方案,最初由 Damien Gombault 移植到 vim

    文德尔添加到您的 .vimrc: Plugin 'lsdr/monokai'编辑配置文件后不要忘记:PluginInstall 。手动安装通过网络获取它并将其本地存储在您的.vim/colors文件夹中: $ cd ~/.vim/colors$ curl -G ...

    sublime text3 BULID 3065+汉化插件+LICENSE-key

    和前面手动破解的方法一致,使用 UltraEdit 或者 VIM 二进制编辑方式打开主文件需修改的位置如下图所示 sublime_text_crack2 安装 SublimeText3 汉化包 压缩包里有lincense,自行复制即可,汉化步骤 运行SublimeText...

    vim-fixjson:用于fixjson的Vim插件; 用于人类的 JSON 修复程序

    十六进制数 将单引号修复为双引号 修复/格式化是异步完成的。 所以它不会阻止用户输入(例如移动光标) 截图 将一行移动到另一行时,您不再需要关心尾随逗号: 并且在向对象或数组添加新元素时,您也不需要关心前一...

    tmux-gruvbox-truecolor:tmux的gruvbox主题

    使用gruvbox的十六进制颜色(大多数终端仿真器都支持truecolor) 指示何时按下前缀键 如果启用了vi-mode(如果$EDITOR包含vi ),则状态栏将在编辑时指示其模式 用活动或终端铃声突出显示未聚焦的窗口 不使用...

    diesel:在终端上运行的便携式文本编辑器

    十六进制/机器码查看和编辑 构建任务 VIM / Emacs / etc.keymap和系统 突围/俄罗斯方块/太空侵略者/蛇 调试 Git客户 你给它起名字 而且很容易将自己的命令和快捷方式添加到工具栏。 扩展取决于实现用户想要查看的...

    fixjson:使用(轻松)JSON5的人类JSON修复程序

    十六进制数 将单引号修复为双引号 fixjson 以格式读取输入并以 JSON 格式输出。 自动检测缩进宽度。 此 CLI 工具旨在与编辑器扩展一起使用。 (专用的 Vim 插件) (Vim 插件) (Vim 插件) (Vim插件) 修复...

    hex-unix:Diretóriode projetos curso Holberton-基础知识

    霍伯顿十六进制 外壳1. 0x00-shell_basics 0-bring_me_home:将工作目录更改为用户主目录的脚本。 1-listfiles:以长格式显示当前目录内容。 2-listmorefiles:显示当前目录内容,包括隐藏文件(以。开头)。 ...

Global site tag (gtag.js) - Google Analytics