VIM中的特殊字符


0.簡介

在linux中vim查看一個windows下的文本文件, 經常在行尾有一個 ^M.

這其實是windows/linux/mac系統中文本換行不一致的原因導致的,

系統類別 文本換行符 轉義字符
Windows CRLF \r\n
Linux LF \n
Mac CR \r

 具體可查看 windows和linux換行規則的區別 .

這里需要介紹的是 ^M 類的符號是什么意思.

 

1. vim的脫字符表示法

ASCII 0-31 部分的所有字符都是控制字符,不是可顯示字符。為了在vim中顯示出這些字符,將這些字符的編碼加上 64 之后對應的全部為可打印字符,於是將 0-31 位置的字符,

用 ^ 跟轉換之后對應的那個字符綁在一起當作一個字符顯示出來,既簡潔又實用,——是為“脫字符表示法”。

如:0x00 對應 ^@ (0+64),0x0D(回車)對應 ^M (13+64)等等

詳細的列表可以通過在vim中 :help digraph-table 命令查看,具體如下(只列出了前33個)

char  digraph   hex     dec     official name ~
^@      NU      0x00      0     NULL (NUL)
^A      SH      0x01      1     START OF HEADING (SOH)
^B      SX      0x02      2     START OF TEXT (STX)
^C      EX      0x03      3     END OF TEXT (ETX)
^D      ET      0x04      4     END OF TRANSMISSION (EOT)
^E      EQ      0x05      5     ENQUIRY (ENQ)
^F      AK      0x06      6     ACKNOWLEDGE (ACK)
^G      BL      0x07      7     BELL (BEL)
^H      BS      0x08      8     BACKSPACE (BS)
^I      HT      0x09      9     CHARACTER TABULATION (HT)
^@      LF      0x0a     10     LINE FEED (LF)
^K      VT      0x0b     11     LINE TABULATION (VT)
^L      FF      0x0c     12     FORM FEED (FF)
^M      CR      0x0d     13     CARRIAGE RETURN (CR)
^N      SO      0x0e     14     SHIFT OUT (SO)
^O      SI      0x0f     15     SHIFT IN (SI)
^P      DL      0x10     16     DATALINK ESCAPE (DLE)
^Q      D1      0x11     17     DEVICE CONTROL ONE (DC1)
^R      D2      0x12     18     DEVICE CONTROL TWO (DC2)
^S      D3      0x13     19     DEVICE CONTROL THREE (DC3)
^T      D4      0x14     20     DEVICE CONTROL FOUR (DC4)
^U      NK      0x15     21     NEGATIVE ACKNOWLEDGE (NAK)
^V      SY      0x16     22     SYNCHRONOUS IDLE (SYN)
^W      EB      0x17     23     END OF TRANSMISSION BLOCK (ETB)
^X      CN      0x18     24     CANCEL (CAN)
^Y      EM      0x19     25     END OF MEDIUM (EM)
^Z      SB      0x1a     26     SUBSTITUTE (SUB)
^[      EC      0x1b     27     ESCAPE (ESC)
^\      FS      0x1c     28     FILE SEPARATOR (IS4)
^]      GS      0x1d     29     GROUP SEPARATOR (IS3)
^^      RS      0x1e     30     RECORD SEPARATOR (IS2)
^_      US      0x1f     31     UNIT SEPARATOR (IS1)
        SP      0x20     32     SPACE
................

 

2.文件轉換命令

dos2unix

unix2dos

 

參考文獻:

http://vimcdoc.sourceforge.net/doc/digraph.html

https://www.jb51.net/article/97768.htm

https://blog.csdn.net/lanchunhui/article/details/51660576

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM