vi 使用中的问题(^M是怎么出现的,代表什么?)

beat30 2005-01-17 06:09:59
我的服务器在linux下,但为了开发方便,source 实在windows上写的,然后
通过FtP 上传到linux上。但是通过vi 打开source 后,发现每一行后面都有
^M 这样的字符,请问:
1. ^M 是什么字符?
2. 这种现象是怎么产生的?
我曾经看到过这样的文档,但现在找不到了,那位大侠能给指点一下?
多谢!

btw. 我的源代码格式是UTF-8.
...全文
717 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pacman2000 2005-01-18
  • 打赏
  • 举报
回复
还是用asc方式ftp传就好了啊。
herofour444 2005-01-18
  • 打赏
  • 举报
回复
ctrl + v + m
beat30 2005-01-17
  • 打赏
  • 举报
回复
那么,每行之间的空白行是怎么出来的呢? 是不是多次转换后造成的?
leeews 2005-01-17
  • 打赏
  • 举报
回复
win下的换行符是\n\r
unix下是\n,所以会造成该问题
hbcb 2005-01-17
  • 打赏
  • 举报
回复
Windows下的编辑器会产生换行和回车两个符号
而Linux/Unix下的编辑器只产生一个换行符,win比Linux多了一个符号

所以Windows的文件在Linux下打开会多一个^M,Linux下的文件在Windows下用记事本打开就是在一行上
leeews 2005-01-17
  • 打赏
  • 举报
回复
ftp的时候改成ascii模式就可以接决该问题
beat30 2005-01-17
  • 打赏
  • 举报
回复
这种情况是不是这样产生的:
文件在windows 下采用ultraedit 编辑时,使用的是CRLF, 然后以binary 模式通过FTP 上传
到linux下,启动的CR就是vi 里面的显示的^M. 如果在UE中,采用 file->conversion->DOS to UNIX
是否就可以避免这个问题呢?
我现在使用的是UTF-8 编码,常常发现一份源文件经过几次转换后,无缘无故的,在每行之间
又增加了空白行,实在不解,望大家赐教。
kilvon 2005-01-17
  • 打赏
  • 举报
回复
:%s/^M//g;
hbcb 2005-01-17
  • 打赏
  • 举报
回复

先按ctrl+v,放开后再按ctrl+m产生的,ASCII码里面的控制符13,是换行或回车,具体是哪个我糊涂了,呵呵~~~

相应地ctrl+v,ctrl+a到ctrl+v,ctrl+z分别产生ASCII码1到26

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧