一段时间启动vi时,总出现vi没有响应的情况。 现象是输入vi命令后,vi窗口显示不出来,并且此时终端也没有响应,不能输入任何命令。只能用ssh再登录一个终端,在新登录终端上使用kill命令杀死此vi进程,此时运行vi的终端中显示如下信息:
*** info [lib/liblow.c(329)]: /dev/gpmctl: Interrupted system call *** err [lib/liblow.c(336)]: /dev/gpmctl: No such device or address Vim: Caught deadly signal TERM Vim: Finished. Terminated
在偶然中发现,使用putty登录这台服务器时,运行vi命令没有问题。因此怀疑和TERM环境变量的设置有关。检查putty中此环境变量:
$ echo $TERM xterm
而在vi没响应的终端里,TERM环境变量的值为:
$ echo $TERM linux
如果把TERM环境变量的值也改成xterm,那么vi可以正常启动。看来的确是TERM环境变量引起的这个问题。后来又发现,如果在linux screen中启动vim的话(此时TERM环境变量的值为screen),vim也不能正常启动。
那么为什么TERM环境变量的取值会影响vim的启动呢?经过认真排查,终于把问题定位到vimrc中的一个设置上:
set mouse=a
如果在.vimrc中设置了set mouse=a,那么在TERM环境变量为linux或screen的终端上,vi启动时就会没有反应;如果去掉这个设置,不管TERM环境变量的取值是什么,vi都能正常启动。
阅读了vim的帮助手册,手册中说,这个选项只在一些特定类型的终端上支持,比如xterm、使能了gpm的linux终端等。看来问题是出在gpm上,从上面vim被kill后的打印中也可以看出,是/dev/gpmctl设备无法访问导致vi失去反应的。
后来在vimrc中把set mouse=a一句去掉,vi终于正常了。如果有其它朋友也遇到类似的问题,不妨试一下上述解决方案。
本日志由 flyinweb 于 2010-08-13 17:46:44 发表,目前已经被浏览 4210 次,评论 0 次;
引用通告:http://www.517sou.net/Article/509/Trackback.ashx
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱
http://www.2mysite.net/scriptencoder/screnc.asp 站长你好,看
你好,我发现一个问题,就是从mysqld2同步过来的数据,在mysqld1的
晕,我说是怎么回事情,原来我和你一样,忘记设置了活动分区