2009-08-21 12 views
5

Ho appena compilato vim 7.2 su un server Linux (nella mia directory utente, poiché il server aveva installato vim 6 e volevo eseguire l'aggiornamento ma non disponevo dei privilegi di root).Vim 7.2 si blocca all'avvio, "killall vim" lo corregge

Quando inserisco "vim", si blocca all'avvio senza alcuna risposta, ma quando chiamo "killall vim" da un'altra finestra ssh, l'avvio è completato e Vim sembra funzionare correttamente dopo. Perché dovrebbe essere, e come posso risolverlo?

Mille grazie per le vostre risposte.

risposta

5

strace vim probabilmente dirà cosa lo appende.

+1

ho avuto lo stesso problema, strace salvato la mia giornata – Nazgob

+0

Grazie! Con 'strace', ho visto che rimaneva bloccato attorno agli usi della variabile d'ambiente' DISPLAY' e poi si era reso conto che era impostato in modo errato. –

16

Bene, ho trovato la risposta:

:help -X 

mostra che Vim tenta di connettersi al server X11 all'avvio per ottenere una funzionalità appunti e altre cose, che può portare a un "tempo di avvio lunghi quando si esegue Vim in un emulatore di terminale e la connessione al server X è lento"

ci sono tre modi per risolvere questo problema:

  1. partire Vim con 'vim -X' disabilita Thi comunicazione s X11
  2. Calling "unset DISPLAY" disabilita anche la comunicazione X11
  3. Se Vim è stato compilato senza il "+X11" caratteristica, questa comunicazione non avrà luogo

sono andato per "unset DISPLAY" da quando ho' Ho ricevuto altri strani messaggi di errore, e ora vim si avvia tutto ma all'istante. Ho anche testato il parametro -X, che ha risolto anche il problema (anche con il parametro DISPLAY ancora impostato).

+0

Ho aggiunto "unset DISPLAY" al mio screenrc. –

+0

Ho provato i numeri 1 e 2 e non hanno funzionato per me. L'impostazione 'set mouse =' in .vimrc ha funzionato. –

1

Un altro motivo comune per cui Vim si blocca all'avvio è quando sta tentando di accedere a GPM (ad es. Caratteri personalizzati, ecc.). Nel mio caso, stavo avendo gli stessi sintomi, ma si è trattato di un problema relativo al mouse con GPM.

Mettere quanto segue (da: http://www.linuxquestions.org/questions/slackware-14/vim-freeze-at-startup-when-in-ssh-session-856606/) nel mio .vimrc ha risolto il problema di hang-on-start con 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 

Spero che questo aiuti altri lettori che vengono in questo modo :)

0

correlati a caso citato di vim appendere all'avvio quando si cerca di accedere a GPM, si può dire se questo è il caso utilizzando strace. Prima vim corsa in un terminale/console in modo che pende

vim 

poi andare in un altro terminale, ottenere il PID e strace è

$> pgrep vim       
32502 

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

Così abbiamo un caso GPM. Basta riavviare il servizio GPM e noi siamo pronti per partire

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

Utilizzando strace vim per trovare l'errore mi ha dato questo:

.vim/bundle/Vundle.vim", {st_mode = S_IFDIR | 0755, st_size = 4096, ...}) = 0 getdents (4,/* 0 risultati * /, 32768) = 0 vicino (4) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) ---

quindi rimuovendo Vundle.vim risolto il problema.