共计 1671 个字符,预计需要花费 5 分钟才能阅读完成。
保留环境 viminfo
回顾组合键映射的细节
上次咱们定义了
session
:mks
还能够加载会话
session
:source Session.vim
vim -S Session.vim
- 基本上确立
:mksession
能够代替:mkview
- 谁知又进去一个
viminfo
?!😨 - 下面这哥俩儿都成了无益补充?
- 什么状况?🤔
直奔主题
:h viminfo
好家伙, 外面货色着实不少
- 命令行历史
- 搜寻历史
- 输出历史
- 非空寄存器
- 标记
- 跨文件标记
- 搜寻和替换的模式
这些都是
:mksession
保留不了的- 工作区存的是工作环境的状态
viminfo
存的是提高效率的一些货色- 跨文件跳转标记
- 命令行历史
- 搜寻历史
好不容易建设的
- 跳转标记
- 命令历史
- 睡一觉就没了?不合理!
- 说了这么半天
viminfo
怎么读写呢?
读写 viminfo
写
viminfo
:wv
写默认 viminfo
读
viminfo
:rv
写默认 viminfo
这一读一写还是挺不便的
- 咱们写一个试试
- 没报错
:e ~/.viminfo
viminfo 内容
398 行
- 上来是软件版本和编码格局
- 而后就是命令行历史记录
- 这样就能用了么?
- 退出去
vi
:rv
- :⬆️
- 如同真的能够用以前的命令了
- 能够指定写到具体文件么?
指定 viminfo 文件
:wv ~/oeasy/oeasy.vim
- 这样就能够把 viminfo 保留到具体的目录底下了
如果
~/oeasy/oeasy.vim
曾经有了:wv! ~/oeasy/oeasy.vim
!
强制写入
:rv ~/oeasy/oeasy.vim
- 也能够从指定的目录复原 viminfo
- 不过要留神安全性的问题
- 一般来说这个外面有很多对于链接、明码、数据库表构造等信息
- 会看的人能够找到蛛丝马迹
- 带来安全隐患
- 千万不能把它存在工程文件里
- 而后间接 push 到 github
- 那就危了
- 不过我敲的命令行那么多
- 他记得过去么?
viminfo 文件的容量设置
:set viminfo='50,<1000,s100,:0,n~/vim/viminfo
'50
保留 marker 标记的文件数:50<1000
寄存器 register 行数:1000s100
超过 100Kbyte 的寄存器中的文本会被疏忽:0
命令行的历史记录数:0no /
搜寻历史记录数:0no %
不记录 buffers:0no h
不记录高亮hlsearch
为 0
多人共用 viminfo
- 如果有一个 viminfo 是专用的
- 上面 A、B 写的是同一个
.viminfo
文件 上面的事件按程序产生
- A 读取了原始的数据,读取了 START 私有变量
- B 做了同样的事
- A 设置了 AAA 和 BOTH 变量
- B 设置了 BBB 和 BOTH 变量
后果在 viminfo 中
- START 是开始就有的,没有扭转
- AAA 是 A 写的,B 保留了他
- BBB 是 B 写的
- BOTH 是 B 写的,A 写的值被抛弃
这总有点偷窥的感觉?
- 个别寄存器里放什么还是有点隐衷的
- 别相互之间搅和了
- 设置好你的 viminfo 文件的读权限
- 别走光了
映射 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>
这个
viminfo
就在你的工程文件夹oeasy
外面- 如果 git 分享的话,肯定设置 gitignore
- 拷贝进去的之前,记得要删除
总结
- 这次咱们理解了 viminfo
他可能保留
- 命令行历史
- 标记
- 寄存器
- 把他和
:mksession
一起应用就能够完满还原环境了 - 还有什么是和环境相干的货色呢?🤔
- 下次再说!
[Github 地址] (https://github.com/overmind19…)
[Gitee 地址] (https://gitee.com/overmind198…)
[蓝桥实验楼 邀请码 FJWYIMGB] (https://www.lanqiao.cn/course…)
正文完