的Vim 7.2挂起在启动时,“killall vim的”修复它
我刚刚编译VIM 7.2在Linux服务器上(在我的用户目录,由于服务器过VIM 6只装,我想升级,但没有root权限)。的Vim 7.2挂起在启动时,“killall vim的”修复它
当我输入“vim”时,它在启动时挂起而没有任何响应,但是当我从另一个ssh窗口调用“killall vim”时,启动完成并且vim似乎在此之后正常工作。为什么会这样,我该如何解决?
非常感谢您的答复。
strace vim
可能会告诉你什么是挂了。
嗯,我找到了答案:
:help -X
显示,Vim试图连接到X11服务器在启动时得到剪贴板功能和其他的东西,运行Vim时,这可能会导致一个“长的启动时间在终端仿真程序和X服务器的连接速度慢”
有解决此问题的方法有三种:
- 启动Vim以‘
vim -X
’禁用THI小号X11通信 - 呼唤“
unset DISPLAY
”还禁止X11通信 - 如果Vim没有“
+X11
”功能编译,这种通信不会发生
我去“unset DISPLAY
”因为我”我一直在收到其他奇怪的错误消息,现在vim立即启动。我还测试了-X参数,这也解决了问题(即使DISPLAY参数仍然设置)。
我在screenrc中添加了“unset DISPLAY”。 – 2009-11-13 13:53:57
我试过数字1和2,它们不适合我。在.vimrc中设置'set mouse ='会有诀窍。 – 2012-03-16 17:53:00
为VIM挂在启动时的另一个常见原因是当它试图访问GPM(即:自定义字体等)。就我而言,我有同样的症状,但它结束了与GPM鼠标相关的问题。
把以下内容(来自:http://www.linuxquestions.org/questions/slackware-14/vim-freeze-at-startup-when-in-ssh-session-856606/)在我的.vimrc固定的接通,启动问题与VIM。
" This section is bigger in my .vimrc, this is just an excerpt.
if has('gui_running')
" Mouse on GUI comes handy.
set mouse=a
else
set mouse=
endif
希望这有助于这一方式:)
与vim试图访问GPM时挂在启动提到的情况,你能告诉我们,如果这是一个使用strace
的情况来其他读者。在一个终端/主机首先运行VIM,使其挂起
vim
然后去到另一个终端,得到PID和与strace它
$> pgrep vim
32502
$> strace -p 32502
Process 32502 attached - interrupt to quit
connect(4, {sa_family=AF_FILE, path="/dev/gpmctl"...}, 13
因此,我们有GPM情况。只需重新启动GPM服务,我们是好去
$> service gpm restart
Shutting down console mouse services: [ OK ]
Starting console mouse services: [ OK ]
使用strace vim
查找错误给了我这个:
的.vim /包/ Vundle.vim”,{ST_MODE = S_IFDIR | 0755,st_size = 4096,...})= 0 getdents(4,/ * 0条目* /,32768)= 0 接近(4)= 0 --- SIGSEGV(分段故障)@ 0(0)---
,以便消除Vundle.vim
解决了这个问题。
我有同样的问题,strace救了我一天 – Nazgob 2010-12-07 08:19:13
谢谢!用'strace',我看到它被卡住了'DISPLAY'环境变量的使用,然后意识到它被错误地设置了。 – 2015-07-22 11:51:00