`
jandroid
  • 浏览: 1891426 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

vim 比较文件、修改二进制文件

 
阅读更多

1. 使用vim的比较模式打开两个文件:
vim -d file1 file2

vimdiff file1 file2

2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:
:vert diffsplit file2
如果没有用vert命令,diffsplit则会分上下两个窗口。

3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
分别在两个窗口里面输入命令:
:diffthis

4. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
:diffupdate

5. 定位到不同点:
[c 跳到前一个不同点
]c 跳到后一个不同点

6. 在窗口间跳转:
ctrl-w w 跳到下一个窗口
ctrl-w h 跳到左侧窗口
ctrl-w l 跳到右侧窗口
ctrl-w j 跳到下方的窗口
ctrl-w k 跳到上方的窗口

7. 合并文档:
dp 将差异点的当前文档内容应用到另一文档(diff put)
do 将差异点的另一文档的内容拷贝到当前文档(diff get)


8. 上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:
:set diffopt=context:3

可以用简单的折叠命令来临时展开被折叠的相同的文本行:
zo (folding open, z这个字母看上去比较像折叠的纸)

9. 比较二进制文件
vim -bd 1.bin 2.bin

:%!xxd -g 1,这样就ok了,对于二进制文件的比较和打开,必须明确指出-b参数,否则,二进制数据显示出现错误!

可以使用如下键盘映射:

nmap <C-F7> :%!xxd -g 1<CR>
nmap <S-F7> :%!xxd -r<CR>

:diffget从对面的窗口获取不同之处到当前窗体

:diffput将当前窗口的不同之处复制到对面窗体

do等同diffget diff obtain

dp等同diffput

10. 编辑二进制文件

vim -b filename 打开二进制文件

:%!xxd 转化成16进制查看

:%!xxd -r 修改后将16进制转到二进制

:wq 存盘退出

分享到:
评论

相关推荐

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

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

    Brackets 当前为Mac, Windows以及Linux提供最新稳定版的二进制发布,.rar

    可以为Mac、Windows以及Linux提供最新稳定版的二进制发布,源代码托管在 GitHub 上。 一个现代、强大的文本编辑器,一个了解网页设计的现代开源代码编辑器。具有可视化工具和预处理器支持,可以帮助你在浏览器中进行...

    vim user manual ---vim用户手册

    j23.4j 二进制文件 j23.5j 压缩文件 jusr 24.txtj 快速键入 j24.1j 校正 j24.2j 显示匹配字符 j24.3j 自动补全 j24.4j 重复录入 j24.5j 从其它行复制 j24.6j 插入一个寄存器的内容 j24.7j 缩写 j24.8j 键入特殊字符 ...

    Vim用户手册中文版72.pdf

    23.4 二进制文件 23.5 压缩文件 第24章 快速键入 24.1 纠错 24.2 显示匹配字符 24.3 自动补全 24.4 重复录入 24.5 从其它行复制 24.6 插入一个寄存器的内容 24.7 缩写 24.8 键入特殊字符 24.9 连体字 24.10 Normal...

    gobuild:将您的github Go存储库编译为二进制文件。 (仍处于测试版)

    gobuild网站 可帮助您将github Go项目编译为二进制文件,您可以轻松下载并共享给您的朋友。 一个示例下载页面: : 如何使用打开浏览器 在网络中输入您的存储库名称。 等待一分钟,二进制文件将被打包完成。先进的...

    YouCompleteMe-x64:带Clang的Vim YouCompleteMe支持Windows x64二进制文件

    注意:最低要求已更改 我们的政策是支持Ubuntu最新LTS中的Vim版本。 当前是Ubuntu 20.04,在v8.1.2269包含vim-nox 。 对于Neovim用户,需要0.4.4。 注意:最低编译器版本已提高 为了提供最佳的性能和稳定性,ycmd已...

    lz4.vim:一个用于读写lz4框架文件的vim插件

    lz4.vim 一个用于读取和写入[lz4]框架文件的vim插件。 [lz4]: : 该插件使您可以查看lz4压缩文件的原始内容,并对其进行修改。 当您读取lz4压缩文件时,插件会在内部对其...lz4c二进制是必需的。 如果使用Ubunt

    vim-conda:在Vim编辑器中更改conda环境(具有Jedi-vim支持)

    如果从带有使用Python 3的已激活Conda env的外壳程序启动Neovim,则会遇到问题,因为conda env公开了一个名为python的二进制文件,但实际上是3而不是2。因此,您将拥有要使用Neovim选项将g:python_host_prog设置为...

    Windows运行Linux应用ForeignLINUX.zip

    Foreign LINUX 项目旨在让用户能在Windows上不做任何修改的跑Linux二进制文件。自由软件社区有一个类似的项目叫Cygwin, 但需要重新编译才能将Linux或BSD上的软件运行在Windows上。Foreign LINUX绕过了这一对普通...

    xshell常用命令.docx

    diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的 comm file1 file2 比较文件,显示两个文件不相同的内容 23.命令ln——...

    自己总结的Linux常用的基本命令

    1)第1个字符:-(二进制文件)、d(目录)、l(软链接) 2)第1至4个字符,表示U的权限 3)第5至7个字符,表示G的权限 4)第8至10个字符,表示O的权限 5)意义:该文件的所有者有(读写权限),所属组有(读权限),...

    vim-kinesis:Kinesis Advantage2布局文件的Vim语法突出显示

    任何人都可以自由地以源代码形式或编译后的二进制形式出于任何商业或非商业目的,以任何方式复制,修改,发布,使用,编译,出售或分发此软件。 在承认版权法的司法管辖区中,本软件的作者将本软件的任何和所有...

    vim-snowflakefmt:snowfmt周围的Vim包装器

    snowflakefmt是一个内部二进制文件,因此很遗憾,目前它在Devoted Health之外无法正常工作。 您可以使用let g:sqlfmt_command = 'sqlfmt'或其他方式设置命令,但应考虑使用 ,该项目只是let g:sqlfmt_command = '...

    忍者:https:github.comninja-buildninja.git

    提供了Linux,Mac和Windows的二进制文件。 运行./ninja -h以获得Ninja帮助。 不需要安装,因为唯一需要的文件是生成的忍者二进制文件。 但是,要启用Bash补全,Emacs和Vim编辑模式等功能,必须将misc /中的某些...

    dots:到目前为止,已有0个密码泄露!

    我的东西,例如配置文件,二进制文件,shell脚本和其他我下次要保留的机器时,我想保留的东西;)git repo位于您的主目录中,因此所有路径都与此相对。 我的用户名是legendofmiracles ,因此您必须在所有配置文件中...

    rocketmq-all-4.8.0-bin-release

    1. 下载 rocketmq 二进制文件 wget --no-check-certificate https://dlcdn.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip 2. 解压缩 rocketmq 将 rocketmq 解压到 /usr/local/ 目录 unzip ...

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

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

    vim-nerdtree-ignore:每个项目的自定义 NERDTreeIgnore 设置

    一个使用示例是在您的 coffeescript 项目中隐藏二进制文件、临时文件或 *.js 文件。 请注意,NERDTree &gt; 4.2.0 增加了NERDTreeAddPathFilter函数,它使您可以在 .vimrc 中进行过滤,但我认为这个插件更简单易用,...

    linux教程——很使用的那种

    - 表示二进制文件 l 软链接文件link 详细分析:drwxr-xr-x 2 root root 4096 12-01 20:52 bin drwxr-xr-x r:read w:write x:execute执行 -:表示无此权限 所有者:u user 所属组:g group 其他人:o other 2:...

    Linux ex命令用法详解

    -b:使用二进制模式编辑文件 -c 指令:编辑完第一个文件后执行指定的指令 -d :编辑多个文件时,显示差异部分 -m :不允许修改文件 -n :不使用缓存 -oN:其中 N 为数字 -r :列出缓存,并显示恢复信息 -R :以只读...

Global site tag (gtag.js) - Google Analytics