Vim 7.2 hangs on startup, “killall vim” fixes it

Tag: vim Author: chaofan300 Date: 2009-08-04

I just compiled vim 7.2 on a Linux server (in my user dir, since the server had vim 6 installed and I wanted to upgrade but do not have root privileges).

When I enter "vim", it hangs on startup without any response, but when I call "killall vim" from another ssh window, startup completes and vim seems to work fine after that. Why would that be, and how can I fix it?

Many thanks for your responses.

Other Answer1

Well, I found the answer:

:help -X

shows that Vim tries to connect to the X11 server on startup to get clipboard functionality and other stuff, which can lead to a "long startup time when running Vim in a terminal emulator and the connection to the X server is slow"

There are three ways to resolve this issue:

  1. Starting Vim with "vim -X" disables this X11 communication
  2. Calling "unset DISPLAY" also disables the X11 communication
  3. If Vim is compiled without the "+X11" feature, this communication will not take place

I went for "unset DISPLAY" since I've been getting other strange error messages, and now vim starts all but instantly. I also tested the -X parameter, which resolved the problem as well (even with the DISPLAY parameter still set).

comments:

I added "unset DISPLAY" to my screenrc.
I've tried numbers 1 and 2, and they didn't work for me. Setting 'set mouse=' in .vimrc did the trick.

Other Answer2

strace vim will probably tell you what's hanging it.

comments:

i had the same problem, strace saved my day

Other Answer3

Another common reason for vim hanging at startup is when it is trying to access GPM (ie: custom fonts, etc). In my case, I was having the same symptoms, but it ended up being a mouse-related issue with GPM.

Putting the following (from: http://www.linuxquestions.org/questions/slackware-14/vim-freeze-at-startup-when-in-ssh-session-856606/) in my .vimrc fixed the hang-on-startup issue with 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

Hope this helps other readers that come this way :)

Other Answer4

Related to the mentioned case of vim hanging at startup when trying to access GPM, you can tell if this is the case using strace. First run vim in one terminal/console so that it hangs

vim

then go to another terminal, get the PID and strace it

$> pgrep vim                        
32502

$> strace -p 32502
Process 32502 attached - interrupt to quit
connect(4, {sa_family=AF_FILE, path="/dev/gpmctl"...}, 13

So we have a GPM case. Just restart the GPM service and we are good to go

$> service gpm restart
Shutting down console mouse services:                      [  OK  ]
Starting console mouse services:                           [  OK  ]