zoukankan      html  css  js  c++  java
  • vim中显示不可见字符

    1、查看文件的隐藏内容

    对于命令行来说,如果要查看一个文件的隐藏信息,可以通过 cat + -A 的形式,输出隐藏信息
    eg:

    # cat -A i18n
    M-oM-;M-?LANG=zh_CN$$
    

    可以看到,文件的隐藏内容被输出出来了。
    如果需要在vim里面查询呢?

    2、vim查看文件的隐藏信息

    方式1:通过 :set invlist,但是这种方式只会显示^I $ 这样的字符
    方式2:通过 :%!cat -A 可以查看具体的信息

    案例:
    这里有两个文件,不显示文件的内容,直接cat 或者 vim查看的时候,文件内容是一样,但是通过cksum检查文件的大小以及crc校验和,发现不一致;
    分析:正常情况下,如果文件的内容是一样的,那么校验和和大小应该是一直的才对。
    解决办法:
    ① 通过diff对比两个文件

    [root@yjt tmp]# diff i18n i18n_ok 
    1c1
    < ?LANG=zh_CN$
    ---
    > LANG=zh_CN
    

    很明显的发现,两个文件的内容居然不一致,这个时候可以猜想文件里面可能存在其他的字符,像隐藏字符,空格,空行等。
    ② 通过cat -A 文件名字 查看文件的隐藏信息,发现对比两个文件,确实不一样

    [root@yjt tmp]# cat -A i18n
    M-oM-;M-?LANG=zh_CN$$
    [root@yjt tmp]# cat -A i18n_ok 
    LANG=zh_CN$
    

    ③ 通过vim的方式,删除隐藏的字符,然后保存,发现从新打开的时候,隐藏字符又出现了。这个时候怀疑到文件的存储格式可能不一致
    ④ 通过file命令检查文件的格式

    [root@yjt tmp]# file i18n
    i18n: UTF-8 Unicode (with BOM) text
    [root@yjt tmp]# file i18n_ok 
    i18n_ok: ASCII text
    

    果不其然,文件的格式不一样,导致看是文件的内容一致,但是文件的大小以及校验和却不一样。

  • 相关阅读:
    如何理解C语言的左结合 和右结合性
    Egg项目使用vscode的debug模式跑单元测试
    为什么要用MongoDB副本集
    理解JS原型和原型链
    防止重复请求攻击
    引擎、编译器和作用域
    闭包原理解析及其应用场景
    树形结构数据完美解决方案
    Excel文件导入导出(基于Nodejs、exceljs)
    架构层面高并发解决方案选择----项目架构模式选择
  • 原文地址:https://www.cnblogs.com/yjt1993/p/13278431.html
Copyright © 2011-2022 走看看