个人已经比较习惯了使用vim这个工具了,可能直到自己以后不再做驱动开发,可能换成其他的工具。工欲善其事必先利其器,重要性可想而知。积累一下吧
复制/粘贴:
VIm中的复制粘贴很讨厌,应该说是在linux中使用复制,粘贴都不太方便,毕竟使用win习惯了。但是如何做到ctrl+C,ctrl+V呢
实现方法:
root@ubuntu:~# vim ~/.vimrc
在key map中添加两行即可:
map <C-c> "+y
map <C-v> "+p
这样就可以方便的在linux和windows之间实现复制粘贴了,还有就是从windows中copy过来的东西缩进可能会乱掉,需要添加:
:set pastetoggle=<F9>
16机制和二进制查看文件:
1. 在 vi 或 vim 的命令状态下
:%!xxd ——将当前文本转换为16进制格式。
:%!xxd -r ——将当前文件转换回文本格式。
2. od - dump files in octal and other formats
顾名思义是查看八进制,可以通过指定参数为查看十六进制
-A 指定左边侧栏显示的地址基数,默认为八进制
-t 指定输出单元的进制格式和字节数
-x = -t x2 输出单元为双字节(注意:每单元内排列顺序从左到右为 [高字节|低字节])
例:
chenglian@chenglian-desktop:~/test$ od -t x1 asm | more
0000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
0000020 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00
chenglian@chenglian-desktop:~/test$ od -A x -t x1 asm | more
000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00
chenglian@chenglian-desktop:~/test$ od -A x -x asm | more
000000 457f 464c 0101 0001 0000 0000 0000 0000
000010 0002 0003 0001 0000 8054 0804 0034 0000
2. hexdump - ascii, decimal, hexadecimal, octal dump
查看十六机制的首选工具。
-c 每单元以字节为单位,显示出对应的ASCII码
-C 每单元以字节为单位,同时显示十六机制和ASCII码
例:
chenglian@chenglian-desktop:~/test$ hexdump -c asm | more
0000000 177 E L F 001 001 001 /0 /0 /0 /0 /0 /0 /0 /0 /0
0000010 002 /0 003 /0 001 /0 /0 /0 T 200 004 /b 4 /0 /0 /0
chenglian@chenglian-desktop:~/test$ hexdump -C asm | more
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 03 00 01 00 00 00 54 80 04 08 34 00 00 00 |........T...4...|
3. xxd - make a hexdump or do the reverse.
能够显示文件对应的十六机制格式,同时还能将修还后的十六进制格式反写回文件,一般与vim结合使用。(利用vim的:! 参数执行外部命令)
使用过程如下:
(1)用vim打开要查看文件
vim txtfile
(2)在vim命令模式下输入
:%!xxd
解释: %表示文件的所有行,!xxd表示执行外部命令xxd,结合在一起,就是把当前vim上显示的所有行传递给xxd,xxd把处理后的结果重新显示在vim上。
(3)这时候可以直接在上面修改十六进制值。注意:当前修改了十六进制值,右边侧栏的ASCII码并不会相应改变。
(4)修改完毕后,反写回原文件。在vim命令模式下输入
:%!xxd -r
只有十六进制的修改部分才会被采用,右边侧栏的ASCII码值忽略不管。
如果你不熟悉vim,可以参考vim自带的vimtutor,然后再参考vim cookbook ,主流的技巧就算是掌握了。
参考博客:
http://blog.csdn.net/gexiaobaohelloworld/article/details/7728979
http://www.linuxidc.com/Linux/2012-08/69080.htm