回忆组合键映射的细节
直奔主题
- 好家伙,里面东西着实不少
- 命令行历史
- 搜索历史
- 输入历史
- 非空寄存器
- 标记
- 跨文件标记
- 搜索和替换的模式
- 这些都是
:mksession
保存不了的
- 工作区存的是工作环境的状态
-
viminfo
存的是提高效率的一些东西
- 好不容易建立的
- 睡一觉就没了?不合理!
- 说了这么半天
-
viminfo
怎么读写呢?
读写viminfo
- 写
viminfo
- 读viminfo
- 这一读一写还是挺方便的
- 我们写一个试试
- 没报错
:e ~/.viminfo
viminfo内容
- 398行
- 上来是软件版本和编码格式
- 然后就是命令行历史记录
- 这样就能用了么?
- 退出去
-
vi
- 好像真的可以用以前的命令了
- 可以指定写到具体文件么?
指定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行数:1000
-
s100
超过100Kbyte的寄存器中的文本会被忽略
-
:0
命令行的历史记录数:0
-
no /
搜索历史记录数:0
-
no %
不记录buffers:0
-
no 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
:map <F3> :so ~/oeasy/oeasy.vim<CR>:so ~/oeasy/oeasyviminfo.vim<CR>
- 这个
viminfo
就在你的工程文件夹oeasy
里面
- 如果git分享的话,一定设置gitignore
- 拷贝出来的之前,记得要删除
总结
- 这次我们了解了viminfo
- 他能够保存
- 把他和
:mksession
一起使用就可以完美复原环境了
- 还有什么是和环境相关的东西呢?🤔
- 下次再说!
教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!
消息队列高手课 -〔李玥〕
如何看懂一幅画 -〔罗桂霞〕
操作系统实战45讲 -〔彭东〕
HarmonyOS快速入门与实战 -〔QCon+案例研习社〕
说透低代码 -〔陈旭〕
徐昊 · TDD项目实战70讲 -〔徐昊〕
现代React Web开发实战 -〔宋一玮〕
技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕
AI 应用实战课 -〔黄佳〕