文件系统换行格式 fileformat

回忆保留环境的细节

  • 上次我们了解了viminfo
  • 他能够保存

    • 命令行历史
    • 标记
    • 寄存器
  • 把他和 :mksession 一起使用就可以完美复原环境了
  • 还有什么是和环境相关的东西呢?

文件系统换行格式

  • 我们可以看到不同的文件系统是有不同的换行符符号的
  • 主要有三种

    • unix - <CarriageReturn> - 对应0x0d
    • mac - <LineFeed> - 对应0x0a
    • windows - <LineFeed> - 对应0x0a0d
  • 系统想要解释换行符的时候
  • 怎么才能知道我用的到底是什么系统呢?
  • 我们新建并打开一个文档 oeasy.txt

文件系统格式列表 fileformats

  • 可以设定一个 fileformats 文件系统格式选项
  • 是一个字符串
  • vim就以此按照字符串中的系统去分析当前文档
  • :set fileformats?

文件系统格式fileformat

  • 但是最终具体是那种文件系统格式呢?
  • :set fileformat?

    • 注意这个没有s

  • 文件默认是按照unix的方式保存文件的

在文件里面写上三行

  • 写上三行

    • oeasy
    • o2z
    • o3z

二进制形态观察

  • :%!xxd

    • %所有的行
    • 强制转化为二进制形态

我们来分析一下

  • %!xxd -r可以变回去

修改字符

  • :%!xxd
  • 找到6f32这个位置

    • 对应着o2两个字符
    • 用r 9把6f32变成6f39
    • 2 变成了 9

  • 再变回来观察

    • :!xxd -r

修改系统格式

  • :set fileformat=dos

    • 把系统格式设置为dos

  • :%!xxd

    • 转化成二进制形态

  • 我们可以注意到这个时候换行符被解释为0d0a

    • 我们一般都是本地编辑本地看
    • 什么时候需要跨系统呢?

跨系统

  • 我们可能从网上下载各种各样的文件
  • 或者我们在linux上编辑的文件被windows系统打开之后一看

    • 全都没有回车
    • 这就很麻烦
  • 所以我们可以指定当前文件的系统格式
  • 说起来vi有个快速打开网上文件的方式

直接打开网络文件

  • 把光标放到链接上

    • gf
  • 就可以gotoFile了
  • 下面这些格式都支持

    • http
    • ftp
    • scp
    • rcp
  • 回忆一下,跳转到函数定义gd

总结文件格式

  • 这次我们了解了文件格式

    • unix
    • dos
    • mac
  • 不同文件格式对应的换行符不同

    • 可以修改当前文件的文件格式
    • 也可以用二进制来观察
    • 不同文件格式下
    • 具体换行符的样子
  • 为什么'6f'就对应字母o?

    • 因为这是ascii基本的编码设定
    • 可中文字符又是如何编码的呢?
  • 下次再说!

[Github地址] (https://github.com/overmind1980/oeasyvim)

[Gitee地址] (overmind1980/oeasyvim)

[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 vim_Linux - 蓝桥云课)

oeasy教您玩转vim - 78 - # 操作系统文件格式 fileformat的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  5. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  6. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  7. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  9. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  10. oeasy教您玩转linux010107那啥在哪 whereis

    回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:

随机推荐

  1. Swoole 源码分析之 Timer 定时器模块

    原文首发链接:Swoole 源码分析之 Timer 定时器模块 大家好,我是码农先森. 引言 Swoole 中的毫秒精度的定时器.底层基于 epoll_wait 和 setitimer 实现,数据结构 ...

  2. Swift Copy On Write 多线程下面的资源竞争

    Swift中的String.Array.Dictionary等容器类型默认实现了写时复制,这个操作在多线程下面可能会带来错误 https://bugs.swift.org/browse/SR-6543

  3. CSP-S2021 游记

    那天是惊蛰 满天花瓣 就像现在 我看清了无池里的那个人 前言 终于是开了 游记 的坑(期盼已久!) 虽然参加过 CSP-J2019 ,CSP-S2020 以及 NOIP2020 ,但是都没有写过游记( ...

  4. k8s——daemonset

    daemonset 为每一个匹配的node都部署一个守护进程 # daemonset node:type=logs daemonset 选择节点 - nadeSelector: 只调度到匹配指定的la ...

  5. Java StringBuffer 与StringBuilder 类的介绍与区别

    目录 StringBuffer类(用来解决String类的内存浪费问题) 构造方法 public StringBuffer(); 无参构造 public StringBuffer( String ); ...

  6. (编程语言界的丐帮 C#).NET Framework 读取Excel到DataTable

    (编程语言界的丐帮 C#).NET Framework 读取Excel到DataTable 生成DataTable到Excel,支持 2007 .xlsx,2003 .xls. nuget 引用 NP ...

  7. 白话理解和使用DOCKER VOLUME

    Docker使用Volume来管理宿主机和容器内数据的映射  什么是数据卷(Volume)Docker镜像被存储在一系列的只读层中.当我们创建一个容器时,Docker会读取镜像(只读),并在其顶部添加 ...

  8. javascript 生成器和迭代器

    前置知识 生成器函数会返回一种称为Generator的迭代器 迭代器是一个对象,定义一个序列,并在终止时返回一个返回值 Symbol.iterator为每一个对象定义了默认的迭代器,可以被for..o ...

  9. Flarum 安装和使用教程

    随着开源社区的日益繁荣,人们对社区品质的要求也越来越高.传统的 BBS 论坛模式已经难以满足现代用户对美观.便捷.互动性的需求.搭建一个现代化的高品质社区,成为许多网站管理者的迫切需求和共同挑战. 今 ...

  10. 开源一个反sql注入的asp.net core中间件

    现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防sql注入的整改. 我们公司开始对网站进行了简单的测试,普通的sql都能检测出来. 但还是被发了整改通知,肯定有些sql注入的方 ...