vim对.gz文件处理
遇到一个奇怪的问题,折腾了一下,感觉很有意思:
我在撰写 Sphinx文档 时, make html
报错:
reading sources... [100%] linux/gentoo_linux/gentoo_ia32
/data/docs/github/huataihuang/cloud-atlas/source/linux/gentoo_linux/gentoo_ia32.rst:17: WARNING: Encoding 'utf-8-sig' used for reading included file '/data/docs/github/huataihuang/cloud-atlas/source/linux/gentoo_linux/gentoo_ia32/zcat_config.gz' seems to be wrong, try giving an :encoding: option
奇怪,我使用 vi zcat_config.gz
这个文件的内容,显示的完全正常:
zcat /proc/config.gz | grep CONFIG_IA32_EMULATION
但是,一旦用 cat zcat_config.gz
就看出异常了,完全是乱码
原因:
vim 可以直接编辑
.gz
压缩文件,实际上就是先解压,然后编辑文本如果用vim编辑一个空文件,但是这个空文件名有后缀
.gz
,则 vim 会默认这个有.gz
后缀名的文件就是一个压缩文件,就会自动生成一个压缩文件(内部包含文本)此时这个文件虽然用vim编辑没有问题,以为是一个纯文本,但实际上已经被压缩了,此时使用
cat
或file
检查,就会看到乱码类似系统内核
/proc/config.gz
文件,都是需要使用zcat
来检查的,也可以直接使用vim
查看,总之,非常方便,但是也要注意这个默认对.gz
后缀名的文件处理特点