oeasy教您玩轉(zhuǎn)vim - 62 - # 緩沖buffer
編輯過程
回憶上次
我們這次了解了編輯過程
默認(rèn)有一個替換文件swap
字符數(shù)
時間長度
手動觸發(fā)
如果
swp
已經(jīng)存在會有個
swo
文件以此類推
修改的內(nèi)容會保存到一個
swap
文件替換文件可以進(jìn)行對源文件的修復(fù)
沒保存到源文件的可能保存到了替換文件
可以統(tǒng)一設(shè)置替換文件的位置
可以控制保存替換文件的觸發(fā)條件
還可以設(shè)置備份文件
備份文件backup
寫備份文件writebackup
其實(shí)我們更常見的是另存為命令進(jìn)行備份
目前
vim
都是打開單一文件vim
可以打開兩個文件嗎???
查看手冊??
man vim
vim oeasy.txt o2z.txt
可以看到
vim
可以有多個參數(shù)在
terminal
里面直接運(yùn)行這樣就會打開兩個文件
每一個打開的文件是一個
buffer
緩沖區(qū)可以在
vim
中用:buffers
查看到目前打開的文件可以
:h buffers
查看手冊

上下切換緩存buffers
:buffers
可以查看所有緩沖:ls
也可以查看所有緩沖注意不是
:!ls
!
是執(zhí)行外部命令ls
可以查看手冊
:h :ls
可以通過
:bn[ext]
,選擇下一個buffer
可以通過
:bprev[ious]
,選擇上一個buffer
也可以通過
:bN[ext]
,選擇上一個bufer

打開指定緩存buffer
可以用
b[uffer]1
、b2
直接切入指定的buffer
也可以用文件名,比如
b[uffer] oeasy.txt
可以用
bf[irst]
,打開第一個buffer
可以用
bl[ast]
,打開最后一個buffer
你可以嘗試復(fù)制粘貼一些內(nèi)容
然后跨文件進(jìn)行復(fù)制粘貼操作
并回憶一下多寄存器的復(fù)制粘貼
buffers細(xì)節(jié)

可以在打開幫助手冊的情況下,
:ls!
,看到不在緩沖列表的緩沖+
? 有修改未保存內(nèi)容-
? 可修改標(biāo)簽關(guān)閉=
? 只讀緩沖區(qū)a
? 活躍緩沖區(qū),當(dāng)前的緩存區(qū)u
? 沒有在列表里面的緩沖區(qū)h
? 隱藏緩沖區(qū)x
? 有讀取錯誤的緩沖區(qū)%
? 當(dāng)前緩沖區(qū)#
? 有swap
替換 文件的緩沖區(qū)
強(qiáng)制跳轉(zhuǎn)buffer
當(dāng)我想跳轉(zhuǎn)的時候,如果當(dāng)前文件沒有保存,他會不允許跳轉(zhuǎn)
先
write
再
next
只能先
:w
保存然后再跳轉(zhuǎn)
也可以用
:wn
如果我想強(qiáng)行跳轉(zhuǎn)
:b!2
這樣當(dāng)前文件沒有直接保存到硬盤里,但
swap
中有如果想
:b2
的時候自動保存需要
:set autowrite
可以
:h autowrite
查看手冊也可以不保存強(qiáng)行退出當(dāng)前
buffer
:q!
甚至不保存強(qiáng)行退出所有
buffer
:qall!
也可以保存所有未保存的文件
:wall
全部保存并退出
:wqall
回憶一下上次提到的
:saveas oeasy.txt
:w >> o2z.txt
hidden的作用
在
terminal
中vim
兩個文件a
、b
vim a b
在
a
里面進(jìn)行了修改如果這個時候我想
:b2
切到第2
個buffer
他會提示我要保存當(dāng)前這個
a
如果設(shè)置了
:set hidden
,這個可以直接切換切換的時候自動保存
a
存在于swap
已經(jīng)修改還沒
w
的狀態(tài)注意這個和
autowrite
不同:set autowrite`
:ls
可以看到兩個都有+
(未保存標(biāo)記)a
是active
h
是hidden
這個時候就
:wall
可以把這兩個一起保存

跨文件跳轉(zhuǎn)
:marks
可以看到各種mark
標(biāo)記

`"是上次光標(biāo)離開此緩存buffer時候的位置
`.是上次編輯此緩存buffer發(fā)生的位置
也可以用大寫字母定義跨文件標(biāo)記
mA
定義標(biāo)記"A
跳轉(zhuǎn)到標(biāo)記
跳轉(zhuǎn)列表
在你跳來跳去的時候
形成了一個跳轉(zhuǎn)列表
:jump
可以來回來去跳躍
CTRL+O上一個
CTRL+I下一個

如果我想在不同的buffer中使用不同的參數(shù),應(yīng)該怎么做呢?
本地開關(guān)

setlocal 本地開關(guān)
:set ruler
全局的標(biāo)尺開關(guān)打開
:setlocal ruler
只打開當(dāng)前buffer的ruler
總結(jié)
我們這次了解了緩沖區(qū)buffer
ls
可以查看buffer
,如下是buffer
緩沖的一些flag
-
? 可修改標(biāo)簽關(guān)閉=
? 只讀緩沖區(qū)a
? 活躍緩沖區(qū)u
? 沒有在列表里面的緩沖區(qū)h
? 隱藏緩沖區(qū)x
? 有讀取錯誤的緩沖區(qū)%
? 當(dāng)前緩沖區(qū)#
? 有swap
替換文件的緩沖區(qū)+
? 有修改未保存內(nèi)容可以在
buffer
跳轉(zhuǎn)可以通過
bn[ext]
,選擇下一個buffer
可以用
b[uffer1]
、b2
進(jìn)入指定的buffer
也可以用文件名,比如
b[uffer] oeasy.txt
可以用
bf[irst]
,打開第一個buffer
可以用
bl[ast]
,打開最后一個buffer
不保存也可以跳轉(zhuǎn)
設(shè)置
hidden
跳轉(zhuǎn)的時候自動保存
設(shè)置
autowrite
可以用大寫字母設(shè)置跨文件標(biāo)記mark
mA
添加標(biāo)記'A
跳轉(zhuǎn)到標(biāo)記關(guān)于強(qiáng)行跳轉(zhuǎn)和保存退出
強(qiáng)制退出當(dāng)前窗口
:q!
不保存強(qiáng)行退出所有
buffer
:qall!
保存所有未保存的文件
:wall
全部保存并退出
:wqall
vim
中打開的兩個文件緩存buffer
可以放到兩個窗口里面同時查看嗎???
下次再說 *
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓 邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)