Chinaunix首页 | 论坛 | 博客
  • 博客访问: 321477
  • 博文数量: 41
  • 博客积分: 1606
  • 博客等级: 上尉
  • 技术积分: 535
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-28 18:20
文章分类

全部博文(41)

文章存档

2013年(1)

2012年(8)

2011年(4)

2010年(8)

2009年(2)

2008年(18)

我的朋友

分类: LINUX

2009-01-15 14:32:02

今天服务器出一怪现象,当使用vi编辑文件保存退出时报以下错误:
 
E138: Can't write viminfo file /root/.viminfo!
Hit ENTER or type command to continue  [ENTER]
 
  呵呵,当初还以为vi坏了,吓一跳,后找到解决方法如下:
删除~/.viminf*.tmp文件就搞定!
 
  那这个.viminfo文件到底是什么东西呢?
 
1) 什么是.viminfo
 
  信息文件 viminfo 被设计为储存状态信息:
命令行和模式搜索的历史记录
寄存器内文本
各种文件的标记
缓存器列表
全局变量
你每次退出 Vim,它就把此种信息存放在一个文件内。即 viminfo 信息文件。当 Vim
重新起动时,就读取这个信息文件, 而那些信息就被还原了。
选项 ‘viminfo’ 的默认设定是还原有限的几种信息。你也许希望设定它记住更多的信息.
下面这个命令可以办到:
:set viminfo=string
其中字符串 “string” 规定了什么要储存。该字符串的语法为一个选项字符跟一个参数.
选项和参数组成的对子之间由逗号分隔.
来看一下你可以怎样构建你自己的 viminfo 字符串。首先,选项 ‘ 用于规定你为多
少个文件保存标记 (a-z)。为此选项挑一个美妙的偶数 (比如 1000). 你的命令现在看
起来像这样:
:set viminfo=’1000
选项 f 控制是否要储存全局标记 (A-Z 和 0-9)。如果这个选项设为 0,那么什么也不
存储。如果设为 1 ,或你对 f 选项不作规定, 那么标记就被存储. 你要这个功能, 现
在你有了:
:set viminfo=’1000,f1
选项 < 控制着每个寄存器内保存几行文本。默认情况下,所有的文本行都被保存. 如果
设为 0,则什么也不保存。为了避免成千上万行文本被加入你的信息文件 (那些文本可能
永远也没用,徒然使 Vim 起动得更慢), 你采用 500 行的上限:
:set viminfo='1000,f1,<500
你也许用得着的其它选项:
: 保存命令行历史记录内的行数
@ 保存输入行历史记录内的行数
/ 保存搜索历史记录内的行数
r 可移介质,其中没有任何标记存入 (可用多次)
! 以大写字母开头的全局变数,并且不含有小写字母
h 起动时解除选项 'hlsearch' 的高亮度显示
% 缓冲列表 (只有当不带参数起动 Vim 时才还原)
c 用编码 'encoding' 转换文本
n 用于 viminfo 文件的名称 (必须为最后一项选项)
 
2) /root/.viminfo示例:
 

 # This viminfo file was generated by Vim 7.0.
# You may edit it if you're careful!

# Value of 'encoding' when this file was written
*encoding=utf-8


# hlsearch on (H) or off (h):
~H
# Last Search Pattern:
~MSle0~/22

# Command Line History (newest to oldest):

# Search String History (newest to oldest):
?/22
?/ss

# Expression History (newest to oldest):

# Input Line History (newest to oldest):

# Input Line History (newest to oldest):

# Registers:
""-     CHAR    0
        #

# File marks:
'0  37  21  /etc/sysconfig/iptables
'1  25  11  /etc/sysconfig/nfs

# Jumplist (newest first):
-'  37  21  /etc/sysconfig/iptables
-'  1  0  /etc/sysconfig/iptables
-'  25  11  /etc/sysconfig/nfs
-'  1  0  /etc/sysconfig/nfs
-'  25  11  /etc/sysconfig/nfs
-'  1  0  /etc/sysconfig/nfs

# History of marks within files (newest to oldest):

> /etc/sysconfig/iptables
        "       37      21
        ^       37      22
        .       37      18
        +       36      5
        +       38      9
        +       37      18

> /etc/sysconfig/nfs
        "       25      11
        ^       40      15
        .       40      14
        +       13      16
        +       19      17
        +       21      17
        +       34      15
        +       40      14

  
 
阅读(5156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~