VI E138: Can't write viminfo file /*/.viminfo! 的解决办法

来源:互联网 发布:网络新媒介有那些 编辑:程序博客网 时间:2024/06/05 10:03
    最近用SecureCRT登录远程服务器,vim打开文件后,没有进行任何编辑后退出,或者编辑后保存退出,vi报错:“E138: Can't write viminfo file xxxx”。
    后来google一下,网上的解决方案很简单:
首先到出错目录用 ls -a 查看是否多出了形如.viminfa.tmp - .viminfz.tmp 的文件
如果有,则运行
rm -f .viminf*.tmp
删除所有产生的临时文件(.viminfa.tmp - .viminfz.tmp)

    从报错来看是无法写入viminfo。google的文章所说大致意思是:在将vi使用的相关信息向".viminfo"文件写入前,会将相关信息保存在“.viminf*.tmp”文件中;将信息写入“.viminfo”后,系统将自动删除该“.viminf*.tmp”文件。此处,“.viminfo”和“.viminf*.tmp”文件均在/home/用户/目录下。而造成此报错的原因是:生成大量的“.viminf*.tmp”(即每次调用vi后的vi使用相关信息)并没有被系统自动删除,而是一直存在于该文件夹中,使得vi每次向“.viminfo”中写入使用信息时,无法判断该写入哪个信息。
    具体解决方法是:进入/root/目录,删除该文件夹下所有“.viminf*.tmp”(搜索到的文章中写到也可以删除“.viminfo”,我没有删除,不过觉得无关紧要,这个文件应该是在vi首次使用后创建的,如果删除了该文件,vi会重新创建的),在重新使用vi,一切就正常运行了。

出处:http://blog.sina.com.cn/s/blog_65a8ab5d0101ffuq.html
0 0