zoukankan      html  css  js  c++  java
  • VIM中的特殊字符

    0.简介

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

    这其实是windows/linux/mac系统中文本换行不一致的原因导致的,

    系统类别 文本换行符 转义字符
    Windows CRLF
    Linux LF
    Mac CR

     具体可查看 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

  • 相关阅读:
    字符串替换
    字符串查找
    字符串比较
    字节与字符串相互转换
    1365. How Many Numbers Are Smaller Than the Current Number
    1486. XOR Operation in an Array
    1431. Kids With the Greatest Number of Candies
    1470. Shuffle the Array
    1480. Running Sum of 1d Array
    【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合
  • 原文地址:https://www.cnblogs.com/LubinLew/p/vim-escape-character.html
Copyright © 2011-2022 走看看