• 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
    

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

  • 相关阅读:
    我理解的优秀软件工程师
    Hello 博客园!
    线程安全与可重入函数之间的区别与联系
    linux-粘滞位的使用
    死锁产生的四个必要条件及处理死锁的策略
    数据结构—位图
    Linux下进度条的简单实现
    Linux-find命令
    Linux文件3个时间点(access time,modify time,change time)
    各种排序算法的实现、总结
  • 原文地址:https://www.cnblogs.com/yjt1993/p/13278431.html
Copyright © 2020-2023  润新知