oeasy教您玩转vim - 78 - # 操作系统文件格式 fileformat
文件系统换行格式 fileformat
回忆保留环境的细节
上次我们了解了viminfo
他能够保存
命令行历史
标记
寄存器
把他和
:mksession
一起使用就可以完美复原环境了还有什么是和环境相关的东西呢?🤔
文件系统换行格式

我们可以看到不同的文件系统是有不同的换行符符号的
主要有三种
unix
-<CarriageReturn>
- 对应0x0dmac
-<LineFeed>
- 对应0x0awindows
-<LineFeed>
- 对应0x0a0d系统想要解释换行符的时候
怎么才能知道我用的到底是什么系统呢?
我们新建并打开一个文档
oeasy.txt
文件系统格式列表 fileformats
可以设定一个
fileformats
文件系统格式选项是一个字符串
vim就以此按照字符串中的系统去分析当前文档
:set fileformats?

文件系统格式fileformat
但是最终具体是那种文件系统格式呢?
:set fileformat?
注意这个没有
s

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

在文件里面写上三行
写上三行
oeasy
o2z
o3z

二进制形态观察
:%!xxd
%
所有的行强制转化为二进制形态

我们来分析一下

%!xxd -r
可以变回去
修改字符
:%!xxd
找到
6f32
这个位置对应着
o2
两个字符用r9把
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地址] (https://gitee.com/overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)