oeasy教您玩轉(zhuǎn)vim - 77 - # 保留環(huán)境viminfo 另祝新年快樂
保留環(huán)境viminfo
回憶組合鍵映射的細(xì)節(jié)
上次我們定義了
session
:mks
還可以加載會(huì)話
session
:source Session.vim
vim -S Session.vim
基本上確立
:mksession
可以替代:mkview
誰(shuí)知又出來一個(gè)
viminfo
?!??上面這哥倆兒都成了有益補(bǔ)充?
什么情況???
直奔主題
:h viminfo

好家伙,里面東西著實(shí)不少
命令行歷史
搜索歷史
輸入歷史
非空寄存器
標(biāo)記
跨文件標(biāo)記
搜索和替換的模式
這些都是
:mksession
保存不了的跨文件跳轉(zhuǎn)標(biāo)記
命令行歷史
搜索歷史
工作區(qū)存的是工作環(huán)境的狀態(tài)
viminfo
存的是提高效率的一些東西好不容易建立的
跳轉(zhuǎn)標(biāo)記
命令歷史
睡一覺就沒了?不合理!
說了這么半天
viminfo
怎么讀寫呢?
讀寫viminfo

寫
viminfo
:wv
寫默認(rèn)viminfo讀
viminfo
:rv
寫默認(rèn)viminfo這一讀一寫還是挺方便的
我們寫一個(gè)試試
沒報(bào)錯(cuò)
:e ~/.viminfo
viminfo內(nèi)容

398行
上來是軟件版本和編碼格式
然后就是命令行歷史記錄
這樣就能用了么?
退出去
vi
:rv
:??
好像真的可以用以前的命令了
可以指定寫到具體文件么?
指定viminfo文件
:wv ~/oeasy/oeasy.vim
這樣就可以把viminfo保存到具體的目錄底下了
如果
~/oeasy/oeasy.vim
已經(jīng)有了:wv! ~/oeasy/oeasy.vim
!
強(qiáng)制寫入:rv ~/oeasy/oeasy.vim
也可以從指定的目錄恢復(fù)viminfo
不過要注意安全性的問題
一般來說這個(gè)里面有很多關(guān)于鏈接、密碼、數(shù)據(jù)庫(kù)表結(jié)構(gòu)等信息
會(huì)看的人可以找到蛛絲馬跡
帶來安全隱患
千萬(wàn)不能把它存在工程文件里
然后直接push到github
那就危了
不過我敲的命令行那么多
他記得過來么?
viminfo文件的容量設(shè)置

:set viminfo='50,<1000,s100,:0,n~/vim/viminfo
'50
保留marker標(biāo)記的文件數(shù):50<1000
寄存器register行數(shù):1000s100
超過100Kbyte的寄存器中的文本會(huì)被忽略:0
命令行的歷史記錄數(shù):0no /
搜索歷史記錄數(shù):0no %
不記錄buffers:0no h
不記錄高亮hlsearch
為0
多人共用viminfo

如果有一個(gè)viminfo是公用的
下面A、B寫的是同一個(gè)
.viminfo
文件下面的事情按順序發(fā)生
A讀取了原始的數(shù)據(jù),讀取了START公有變量
B做了同樣的事
A設(shè)置了AAA和BOTH變量
B設(shè)置了BBB和BOTH變量
結(jié)果在viminfo中
START是開始就有的,沒有改變
AAA 是 A寫的 ,B保留了他
BBB 是B 寫的
BOTH是B寫的,A寫的值被丟棄
這總有點(diǎn)偷窺的感覺?
一般寄存器里放什么還是有點(diǎn)隱私的
別互相之間攪和了
設(shè)置好你的viminfo文件的讀權(quán)限
別走光了
映射map
原來的映射
:map <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>
:map <F3> :so ~/oeasy/oeasy.vim<CR>
新的映射
:map <F2> :wa<Bar>exe "mksession! " . v:this_session<CR>:wv ~/oeasy/oeasyviminfo.vim<CR>
:map <F3> :so ~/oeasy/oeasy.vim<CR>:so ~/oeasy/oeasyviminfo.vim<CR>
這個(gè)
viminfo
就在你的工程文件夾oeasy
里面如果git分享的話,一定設(shè)置gitignore
拷貝出來的之前,記得要?jiǎng)h除
總結(jié)
這次我們了解了viminfo
他能夠保存
命令行歷史
標(biāo)記
寄存器
把他和
:mksession
一起使用就可以完美復(fù)原環(huán)境了還有什么是和環(huán)境相關(guān)的東西呢???
下次再說!
[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)