oeasy教您玩轉(zhuǎn)vim - 78 - # 操作系統(tǒng)文件格式 fileformat
文件系統(tǒng)換行格式 fileformat
回憶保留環(huán)境的細(xì)節(jié)
上次我們了解了viminfo
他能夠保存
命令行歷史
標(biāo)記
寄存器
把他和
:mksession
一起使用就可以完美復(fù)原環(huán)境了還有什么是和環(huán)境相關(guān)的東西呢???
文件系統(tǒng)換行格式

我們可以看到不同的文件系統(tǒng)是有不同的換行符符號(hào)的
主要有三種
unix
-<CarriageReturn>
- 對(duì)應(yīng)0x0dmac
-<LineFeed>
- 對(duì)應(yīng)0x0awindows
-<LineFeed>
- 對(duì)應(yīng)0x0a0d系統(tǒng)想要解釋換行符的時(shí)候
怎么才能知道我用的到底是什么系統(tǒng)呢?
我們新建并打開一個(gè)文檔
oeasy.txt
文件系統(tǒng)格式列表 fileformats
可以設(shè)定一個(gè)
fileformats
文件系統(tǒng)格式選項(xiàng)是一個(gè)字符串
vim就以此按照字符串中的系統(tǒng)去分析當(dāng)前文檔
:set fileformats?

文件系統(tǒng)格式fileformat
但是最終具體是那種文件系統(tǒng)格式呢?
:set fileformat?
注意這個(gè)沒(méi)有
s

文件默認(rèn)是按照unix的方式保存文件的

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

二進(jìn)制形態(tài)觀察
:%!xxd
%
所有的行強(qiáng)制轉(zhuǎn)化為二進(jìn)制形態(tài)

我們來(lái)分析一下

%!xxd -r
可以變回去
修改字符
:%!xxd
找到
6f32
這個(gè)位置對(duì)應(yīng)著
o2
兩個(gè)字符用r9把
6f32
變成6f39
把
2
變成了9

再變回來(lái)觀察
:!xxd -r

修改系統(tǒng)格式
:set fileformat=dos
把系統(tǒng)格式設(shè)置為
dos

:%!xxd
轉(zhuǎn)化成二進(jìn)制形態(tài)

我們可以注意到這個(gè)時(shí)候換行符被解釋為
0d0a
我們一般都是本地編輯本地看
什么時(shí)候需要跨系統(tǒng)呢?
跨系統(tǒng)
我們可能從網(wǎng)上下載各種各樣的文件
或者我們?cè)趌inux上編輯的文件被windows系統(tǒng)打開之后一看
全都沒(méi)有回車
這就很麻煩
所以我們可以指定當(dāng)前文件的系統(tǒng)格式
說(shuō)起來(lái)vi有個(gè)快速打開網(wǎng)上文件的方式
直接打開網(wǎng)絡(luò)文件

把光標(biāo)放到鏈接上
gf
就可以gotoFile了
下面這些格式都支持
http
ftp
scp
rcp
回憶一下,跳轉(zhuǎn)到函數(shù)定義
gd
總結(jié)文件格式
這次我們了解了文件格式
unix
dos
mac
不同文件格式對(duì)應(yīng)的換行符不同
可以修改當(dāng)前文件的文件格式
也可以用二進(jìn)制來(lái)觀察
不同文件格式下
具體換行符的樣子
為什么'6f'就對(duì)應(yīng)字母
o
?因?yàn)檫@是ascii基本的編碼設(shè)定
可中文字符又是如何編碼的呢???
下次再說(shuō)!?
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓 邀請(qǐng)碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)