eclipse cdt + rse文件保存遇到的问题

  公司一直都在用utraedit作c++编辑器编辑后台代码,utraedit毕竟是文本编辑器,代码提示功能有限,不能追踪变量声明,域内变量不能着色,无语法提示等等,由于工作上经常要面对单个文件动辙成千上万行的代码,用肉眼跟踪起来很不方便。于是从上个月我开始改用eclipse cdt + RSE插件作为后台代码编辑工具。因为是从后台打开cpp文件,所以代码提示等功能都不能正常使用,但是有变量着色,语法提示,变量追踪,已经比utraedit好多了。

  新工具用了一段时间后,发现一个奇怪的问题,保存文件到后台后,在后台用svn diff看一下修改点,发现diff结果显示整个文件都不一样了,而用utraedit是没有这个问题的。虽然不影响编译,但要是就这么提交到SVN,版本历史上可能会有我不可磨灭的一笔。因为要交任务,所以就马上没有追究原因,只要发现diff不一样,先用回utraedit把代码改上去。

  今天QCS停服了,任务单提交不了了。于是抽空看一下这个问题。先拿一个被eclipse保存过的文件跟原来的文件做一下对比,可见字符没什么区别,但是utracompare一下,两个文件是不一样的,转到十六进制视图观察了一下,发现问题出在每一行结束符上,被eclipse保存过的文件每行都多个0D(回车符)。回车符是怎么来的?在eclipse里面把不可见字符显示出来看,并没有什么回车符,把文件export出来,也没什么回车符,应该不是编辑器的问题,那就只能是RSE的问题了,看了一下RSE的设置,发现它的files设置项里面,不同的扩展名有不同的file transfer mode,分为binary、text和xml三种,试着改成binary执行保存文件,这下回车符不见了,原来问题出在这里,RSE是用ftp方式进行传输,源代码文件默认以text(ascii)方式传输,不同系统下会有不同的处理,如果是windows,会自动在文件换行符前面加回车符。

  我把.h和.cpp对应的传输方式改成binary,这个问题搞定,同时把新建文件的line delimiter改成UNIX,保证新建文件不会有回车符。在不同平台之间工作,还是应该注意一下跨平台的问题。

  

  另外又发现了另一个问题,并不是所有加了回车符的文件svn diff命令都能显示整个文件不一样,有的text方式传输保存的文件,我拿来与.svn目录下对应的文件对比,确实是每一行都多了个回车符的,但是svn diff就是没显示有区别,这个就还没找到原因了。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值