文档章节

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

zhcosin
 zhcosin
发布于 2012/10/22 10:00
字数 425
阅读 910
收藏 6

       经常把代码在 windows 下和 linux 下传来传去,苦于程序源代码文件的编码问题,windows 下是 cp936 格式,linux 下通用 utf-8 格式,程序中的注释我还是喜欢用中文(就我目前这英文水平,是想写英文也无力呀^_^),发布源代码的时候也需要两种编码各一份,逐个文件的进行编码转换实在是一份让人痛苦不堪的活,好在 vim 有批量编辑文件的功能,这要用到 args 和 argdo 命令,可以查看 :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.

© 著作权归作者所有

zhcosin

zhcosin

粉丝 31
博文 16
码字总数 17025
作品 1
成都
私信 提问
加载中

评论(3)

zhcosin
zhcosin 博主

引用来自“BachueZhou”的评论

转码何须vim?shell命令就可以做完了

你说的是 iconv 吧,我没试过,但据网上所说它的转换不完美,需要做一些修正,我天天是写代码的,自然就在 vim 中完成了。
BachueZhou
BachueZhou
转码何须vim?shell命令就可以做完了
5292401
5292401
good job :)
linux 文件编码格式转换

如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的...

运维技术
2015/01/03
988
0
Linux实用命令整理

阅读目录 说明 0. 基本命令 1. 压缩 解压 2. vim小结 3. 文件搜索 4. 排序 sort 5. 系统开销 6. 进程状态 7. awk命令 8. sed命令 9. 编码转换 10. 文件属性 11. 管道 | 重定向 > 12. curl 文...

技术mix呢
2017/11/07
0
0
Linux中文显示乱码问题解决方法(编码查看及转换)

Linux中文显示乱码问题解决方法(编码查看及转换) 1,示例 图中名为一个.sql文件的一段内容,是一个数据库文件。其在windows中打开显示正常,在Linux中,中文部分显示为乱码。 注意:这个与数...

整合侠
03/30
0
0
IDEA 导入 eclipse 的项目出现\65279错误的解决

之前一直在用eclipse,这段时间尝试使用IDEA,但是遇到的第一个问题就是eclipse的项目导入到IDEA中后,启动tomcat发现报非法字符65279的错误。 以前的解决办法 google了些资料,基本上都是两...

evilgod528
2015/02/10
2.4K
0
linux和windows双系统互拷文件乱码问题

如果你需要在linux下面用到windows下的文件,拷贝上去后经常发现中文显示乱码。。原因是Windows中默认的文件格式是 GBK(gb2312),而Linux一般都是UTF-8。比较繁琐的方法是在windows下用程序把...

wzqlcf
2014/07/10
323
0

没有更多内容

加载失败,请刷新页面

加载更多

.NET Core 3 WPF MVVM框架 Prism系列之命令

原文: .NET Core 3 WPF MVVM框架 Prism系列之命令 本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的命令的用法 一.创建DelegateCommand命令# 我们在上一篇.NET Core 3 WPF MVVM框架 Pr...

osc_4dady4pk
12分钟前
15
0
Asp.Net Core下的开源任务调度平台ScheduleMaster—快速上手

原文: Asp.Net Core下的开源任务调度平台ScheduleMaster—快速上手 概述 ScheduleMaster是一个开源的分布式任务调度系统,它基于Asp.Net Core平台构建,支持跨平台多节点部署运行。 它的项目...

osc_3grma05a
13分钟前
20
0
php数组转字符串 加单双引号和逗号

$Arr = array(a,b,c,d,e,f,g) #join$str = " ' " . join("','", array_values($Arr) ) . " ' "; // 使用需要的符号拼接#str_replace$str = " ' ".str_replace( ",","','", impl......

啥都不会的程序员
14分钟前
21
0
性能计数器在.NET Core中的新玩法

原文: 性能计数器在.NET Core中的新玩法 传统的.NET Framework提供的System.Diagnostics.PerformanceCounter类型可以帮助我们收集Windows操作系统下物理机或者进程的性能指标,基于Performan...

osc_dg21zk4i
14分钟前
14
0
【WPF学习】第六十三章 理解WPF中的自定义元素

原文: 【WPF学习】第六十三章 理解WPF中的自定义元素   尽管可在任意WPF项目中编写自定义元素,但通常希望在专门的类库程序集(DLL)中放置自定义元素。这样,可在多个WPF应用程序之间共享自...

osc_5h77wdgp
15分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部