会话文件是什么意思

会话文件是什么意思,第1张

意思是将保存所有编辑窗口和全局设置。通过恢复会话,可以快速切换回之前工作环境。可以认为,会话是viminfo的扩展补充,viminfo文件中保存了会话所需要使用的具体设置信息。会话文件意思是将保存所有编辑窗口和全局设置。文件是 *** 作系统为用户或应用程序提供的一个读写硬盘的虚拟单位。

最近在使用vim编辑器时,老是报错:E138: Can't write viminfo file /home/work/.viminfo!

先说解决办法:进入报错的目录,也就是/home/work/,然后执行命令:rm -f .viminf*.tmp 即可

原因:进入/home/work/目录下,用ls -a你会发现有很多.viminfa.tmp - .viminfz.tmp 这种的临时文件,这是因为使用vim编辑器时,如果编辑器没有正常退出就会生成一个暂存文件,供下次恢复使用。而这个错误是因为生成大量的“.viminf*.tmp” 并没有被系统自动删除,而是一直存在于该文件夹中,使得vim每次向“.viminfo”中写入使用信息时,无法判断该写入哪个信息

有两种方法。

一种是 setreg()。具体来说用:

:call setreg('a', '')

可以把 寄存器a 里的内容清空。如果是想清除某几个寄存器的话,这个方法就很好。

如果是想清空所有的,用个循环即可,如下:

for c in range(char2nr('a'), char2nr('z')) + range(char2nr('0'), char2nr('9'))

    call setreg(nr2char(c), "")

endfor

另一种方法是去删 viminfo 文件。

vim 各个寄存器的值,命令行的历史记录等东西都是记录在 viminfo 里的。要想删除相关的东西,直接去 *** 纵 viminfo 就可以了。

但是由于 vim 加载的时候会加载 viminfo 里的内容,退出的时候会再写入。所以用 vim 来编辑 viminfo 是不行的,删掉的东西会再写回去。因此要退出所有正在运行的 vim,让其把相关的内容先都写到 viminfo 里,然后运行其它编辑器来删除 viminfo 里的有关内容。或者干脆把 viminfo 直接删了也行,相当于清空所有历史记录。

最后,如果你根本不喜欢 vim 在退出之后保留那么多没用的寄存器内容,那么在 .vimrc 里加上(请务必先看一下自己的 .vimrc 里是不是已经有 viminfo 的设置,如果有只需把 <后面的数字改成 0 就好,其它的不要动):

set viminfo=100,<0,s10,h

就可以禁止 vim 退出后保存寄存器的内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12059417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存