you can edit binary files with vim via xxd.
Wow, amazing. However On my first attempt to use it Im kind of
confused and running into some problems. I think probably because I
dont quite understand the nuances of working with binary files.
I have a file that is a .cab file. It has references to c:\WINNT
\system32\spool everywhere. This is find but I need to change the
WINNT to Windows.
I create a file say called template. I put in two strings \WINNT\ hit
enter few times and then enter \Windows\
I open the template and then go into xxd eg :%!xxd . This gives me ...
0000000: 5c57 494e 4e54 5c0d 0a0d 0a0d 0a0d 0a0d \WINNT\.........
0000010: 0a0d 0a0d 0a0d 0a0d 0a5c 5769 6e64 6f77 .........\Window
0000020: 735c 0d0a 0d0a 0d0a 0d0a 200d 0a s\........ ..
The reason I have the template file is so that I can cut and paste the
hex numbers into my global change strings.
Now I open my .cab file that I want to change. Then type :%!xxd
Now I paste the numbers from the template, carfully copying only the
numbers i want.
:1,$s/5c57 494e 4e54 5c/5c 5769 6e64 6f77 735c/g
Problem is that this doesn really work. Some strings for example are
coming out
c:\windows\system3spool\
others
C:\Windowssystem32\
I thought that it would ignore the spaces and just change the strings
but it only changes some of the strings. It is slavishly looking for
the exact string (sure I guess thats what its suppose to do duuu). But
how can I get it to be more forgiving.
Im thinking I need to write something like....
1,$s/5c57 494e 4e54 5c/5c?57?69?6e?64?6f?77?73?5c/g
Although Im not sure. If you know what I mean. Can anyone tell me how
to resolve this problem. Maybe the search string is not quite righ as
well.
Thanks
Regards
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
No comments:
Post a Comment