關於在VI文本中出現^M字符的問題?

Tags: 問題, 字符, 文本,

當我們使用虛擬機下的linux操作系統進行開發或者學習時,很多時候需要從共享內存中拷貝一些主機中的文件。然而對於新手來說往往會忽略一個事實:跨平臺的移植性問題。

關於在VI文本中出現^M字符的問題

工具/原料

VM虛擬機,vi文本

方法/步驟

先將出問題的情景圖發給大家看,首先,我們需要意識到這並不是亂碼問題.

關於在VI文本中出現^M字符的問題

如果需要從表面上修改,只需使用替換命令就能將該字符給取消;

#:%s/^M//g

注:^M字符可由“Ctrl”+“v”+"Enter"三個鍵打開;

具體的鍵值也可以通過查看ASCII表進行校對;

#man ascii

關於在VI文本中出現^M字符的問題

當然對於跨平臺造成的編碼格式問題最根本還是需要對vi文本配置進行註釋,讓它能夠識別的到;

#vim /etc/vim/vimrc

具體方法參考vi相關配置(dos和unix的換行符解決方案);

關於在VI文本中出現^M字符的問題

其實這個都是歷史遺留問題,根本原因就是對換行符的內存組成問題。在unix操作系統下的換行符格式為0A(ascii碼),而dos格式下的換行符為 0D 0A(也就是 ), 其實就顯示為^M了。並且對於這個原因,也是有歷史的,喜歡探究的同學可以查看一下。

關於在VI文本中出現^M字符的問題

關於這個故事,其實unix才是顛覆了傳統將換行符的字符形式給轉變了,然而,dos命令下任然保留著傳統的表達方式;所以以後在進行跨平臺開發的時候,前提就是考慮是否兼容,是否編碼格式兼容這些基本的前提條件,好了就到這吧。

關於在VI文本中出現^M字符的問題

注意事項

兼容性要注意,跨平臺是否能移植,編碼是個細節性問題

相關問題答案