Skip to main content

利用 vim 进行文件编码批量转换

感謝本文的作者:http://my.oschina.net/u/736932/blog/84261

這樣可以不僅僅做源代碼的轉換,還可以做其他的編碼轉換。

经常把代码在 windows 下和 linux 下传来传去,苦于程序源代码文件的编码问题,windows 下是 cp936 格式,linux 下通用 utf-8 格式,发布源代码的时候也需要两种编码各一份,逐个文件的进行编码转换实在是一份让人痛苦不堪的活,好在 vim 有批量编辑文件的功能,这要用到 argsargdo 命令,可以查看 :help args:help argdo 以获得详细的说明。

这里只说下这两个命令在对文件进行批量转换编码的用法:

一、设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对 C/C++ 源程序进行编码转换:

:args *.h *.cpp

二、给出要在每个文件上执行的命令,这里是转换编码:

:argdo set fenc=utf-8 | update

这样就 ok 了,一边偷着乐去吧。这里要注意的是如果要同时执行多个命令则需要用|隔开,上面的 update 一定要写上,因为 vim 在一个文件被修改后尚未保存的情况下去编辑下一个文件会给出出错提示的,用上这个 update 就是更新文件了,这样就不会出这个问题了。

当然, args 和 argdo 能做的事情多的很,比如可以在多个文件中批量替换,这个应该也很实用吧,具体可以查看 vim 的帮助文件 :help args:help argdo.

Comments

Comments powered by Disqus