oeasy教您玩轉(zhuǎn)vim - 61- # 編輯過(guò)程
編輯過(guò)程
回憶上次
vi
可以加各種參數(shù)vi +4 oeasy.txt
vi +/shiyanlou
vi +%s/shiyanlou/oeasy/g oeasy.txt
vi
可以接收stdin
的參數(shù)ls -lah | vi -
vi
還有各種模式命令行模式
ex oeasy.txt
或者vi -e oeasy.txt
只讀模式
vi -R oeasy.txt
或者view oeasy.txt

如果加一個(gè)
-r
的參數(shù)可以么幫助手冊(cè)說(shuō)的
swap
是什么意思???
查看手冊(cè)
什么不會(huì)查什么
我們進(jìn)入
vim
查詢:h swap
看到編輯文件的過(guò)程

編輯過(guò)程
進(jìn)入
Code
文件夾直接打開
vi
并輸入一些字符
這個(gè)時(shí)候所有的編輯內(nèi)容都在
內(nèi)存
如果
vim
進(jìn)程結(jié)束,什么都會(huì)消失w oeasy.txt
把內(nèi)存里面的東西放進(jìn)硬盤
然后
繼續(xù)編輯
修改后的內(nèi)容首先保存在內(nèi)存
然后被寫入一個(gè)
oeasy.txt
的swap
替換文件可以
:sw
看到這個(gè)替換文件的名字
叫做
.oeasy.txt.swp
開頭的
.
意味著 此文件為隱藏文件中間是
oeasy.txt
原始文件的名字后面是
.swp
意味著是swap
替換文件

恢復(fù)文件
我們可以直接結(jié)束
terminal
然后再開一個(gè)
terminal
運(yùn)行
ls -lah *oeasy*
可以看到兩個(gè)文件

一個(gè)是最初
:w
時(shí)保存的文件另一個(gè)是在內(nèi)存自動(dòng)保存的
.swp交換文件
再次打開

我們運(yùn)行
vi oeasy.txt
可以選擇
這個(gè)要小心,直接就把交換文件刪掉了
這個(gè)時(shí)候進(jìn)去之后,
:w
才把swap
文件存儲(chǔ)于oeasy.txt
如果這個(gè)時(shí)候繼續(xù)編輯
新的
swp
替換文件,命名為swo
是降序的一個(gè)規(guī)律
直到
ssa
可以通過(guò)
:sw
看到也可以
ls -lah
看到O 只讀
E 直接編輯,忽略
.oeasy.txt.swp
R 直接讀取
.oeasy.txt.swp
并打開D 刪除交換文件
Q 退出
A 終止

恢復(fù)文件
恢復(fù)文件可以有很多方法
如果當(dāng)前文件有修改
運(yùn)行之后要求保存當(dāng)前位置文件
:w
保存文件后,并不會(huì)把修改保存到.swp
文件中如果有多個(gè)
swp
交換文件會(huì)讓你選注意修改日期
vi oeasy.txt
時(shí)選擇Recover或者
vi -r oeasy.txt
或者
E
進(jìn)入原始文件之后運(yùn)行命令:rec

另存與追加
另存
:saveas oeasy.txt
當(dāng)前buffer另存為其他文件

追加
:w >> o2z.txt
把當(dāng)前buffer追加寫入其他文件
使用專門文件夾
默認(rèn)替換文件都在源文件同一文件夾
可以重新設(shè)置一個(gè)新文件夾嗎?
:set dir=/temp/vim

配置專門的替換文件夾有什么好處嗎?
放在不同的硬盤,防災(zāi)
減少對(duì)于原始文件的文件夾進(jìn)行污染
可以寫在
~/.vimrc
中,每次都自動(dòng)設(shè)置
更多細(xì)節(jié)
:nos(wapfile)
可以讓當(dāng)前文件不用
swap
文件swap
文件更新的觸發(fā)條件:set updatetime=10
如果編輯文字時(shí)長(zhǎng)達(dá)到
updatetime
就會(huì)更新
swap
文件默認(rèn)是
4000
毫秒:set updatecount=300
如果編輯文字達(dá)到
updatecount
就會(huì)更新
swap
文件默認(rèn)是
200
更新文字?jǐn)?shù)
更新間隔時(shí)間
:preserver
強(qiáng)行更新swap
文件

設(shè)置備份
vim
一般沒有產(chǎn)生備份文件如果你想要有個(gè)備份文件
:set backup

備份文件名
:set backupext=.bak
備份的缺省文件默認(rèn)是在文件名后面加~
oeasy.txt~就是備份文件
如果你想要設(shè)置備份文件的擴(kuò)展名

備份位置
:set backupdir=/tmp/backup
如果無(wú)法生成備份文件是因?yàn)闆]有文件夾
!mkdir /tmp/backup
默認(rèn)就在原地備份
如果你想指定一個(gè)位置

寫備份
設(shè)置
寫備份writebackup
如果
:set nobackup
并且
:set writebackup
vim也會(huì)備份一個(gè)備份文件
但是只要你對(duì)源文件
:w
了之后備份就會(huì)消失
主要是怕寫的過(guò)程中源文件消失
目前這些都可以通過(guò) ?版本控制工具
git
來(lái)解決
總結(jié)
我們這次了解了編輯過(guò)程
默認(rèn)有一個(gè)替換文件swap
字符數(shù)
時(shí)間長(zhǎng)度
手動(dòng)觸發(fā)
如果
swp
已經(jīng)存在會(huì)有個(gè)
swo
文件以此類推
修改的內(nèi)容會(huì)保存到一個(gè)
swap
文件替換文件可以進(jìn)行對(duì)源文件的修復(fù)
沒保存到源文件的可能保存到了替換文件
可以統(tǒng)一設(shè)置替換文件的位置
可以控制保存替換文件的觸發(fā)條件
還可以設(shè)置備份文件
備份文件backup
寫備份文件writebackup
其實(shí)我們更常見的是另存為命令進(jìn)行備份
目前
vim
都是打開單一文件vim
可以打開兩個(gè)文件嗎???下次再說(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)