多语言展示
当前在线:1030今日阅读:126今日分享:42

关于在VI文本中出现^M字符的问题

当我们使用虚拟机下的linux操作系统进行开发或者学习时,很多时候需要从共享内存中拷贝一些主机中的文件。然而对于新手来说往往会忽略一个事实:跨平台的移植性问题。
工具/原料

VM虚拟机,vi文本

方法/步骤
1

先将出问题的情景图发给大家看,首先,我们需要意识到这并不是乱码问题.

2

如果需要从表面上修改,只需使用替换命令就能将该字符给取消;#:%s/^M//g注:^M字符可由“Ctrl”+“v”+'Enter'三个键打开;具体的键值也可以通过查看ASCII表进行校对;#man ascii

3

当然对于跨平台造成的编码格式问题最根本还是需要对vi文本配置进行注释,让它能够识别的到;#vim /etc/vim/vimrc具体方法参考vi相关配置(dos和unix的换行符解决方案);

4

其实这个都是历史遗留问题,根本原因就是对换行符的内存组成问题。在unix操作系统下的换行符格式为0A(ascii码),而dos格式下的换行符为 0D 0A(也就是),其实就显示为^M了。并且对于这个原因,也是有历史的,喜欢探究的同学可以查看一下。

注意事项

兼容性要注意,跨平台是否能移植,编码是个细节性问题

推荐信息