的Vim 7.2挂起在启动时,“killall vim的”修复它

问题描述:

我刚刚编译VIM 7.2在Linux服务器上(在我的用户目录,由于服务器过VIM 6只装,我想升级,但没有root权限)。的Vim 7.2挂起在启动时,“killall vim的”修复它

当我输入“vim”时,它在启动时挂起而没有任何响应,但是当我从另一个ssh窗口调用“killall vim”时,启动完成并且vim似乎在此之后正常工作。为什么会这样,我该如何解决?

非常感谢您的答复。

strace vim可能会告诉你什么是挂了。

+1

我有同样的问题,strace救了我一天 – Nazgob 2010-12-07 08:19:13

+0

谢谢!用'strace',我看到它被卡住了'DISPLAY'环境变量的使用,然后意识到它被错误地设置了。 – 2015-07-22 11:51:00

嗯,我找到了答案:

:help -X 

显示,Vim试图连接到X11服务器在启动时得到剪贴板功能和其他的东西,运行Vim时,这可能会导致一个“长的启动时间在终端仿真程序和X服务器的连接速度慢”

有解决此问题的方法有三种:

  1. 启动Vim以‘vim -X’禁用THI小号X11通信
  2. 呼唤“unset DISPLAY”还禁止X11通信
  3. 如果Vim没有“+X11”功能编译,这种通信不会发生

我去“unset DISPLAY”因为我”我一直在收到其他奇怪的错误消息,现在vim立即启动。我还测试了-X参数,这也解决了问题(即使DISPLAY参数仍然设置)。

+0

我在screenrc中添加了“unset DISPLAY”。 – 2009-11-13 13:53:57

+0

我试过数字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解决了这个问题。