2009-08-21 22 views
5

Właśnie skompilowałem vim 7.2 na serwerze Linux (w moim katalogu użytkownika, ponieważ serwer miał zainstalowany vim 6 i chciałem uaktualnić, ale nie mam uprawnień root'a).Vim 7.2 zawiesza się przy starcie, "killall vim" naprawia to

Kiedy wpisuję "vim", to zawiesza się przy starcie bez żadnej odpowiedzi, ale kiedy wołam "killall vim" z innego okna ssh, uruchamianie się kończy i vim wydaje się działać dobrze po tym. Dlaczego tak się stanie i jak mogę to naprawić?

Wielkie dzięki za odpowiedzi.

Odpowiedz

5

strace vim prawdopodobnie powie Ci, co jest zawieszone.

+1

Miałem ten sam problem, strace uratował mój dzień – Nazgob

+0

Dzięki! Używając 'strace', zobaczyłem, że utknął on wokół wykorzystania zmiennej środowiskowej' DISPLAY', a następnie zdał sobie sprawę, że została ustawiona niepoprawnie. –

16

Cóż, znalazłem odpowiedź:

:help -X 

pokazuje, że Vim próbuje połączyć się z serwerem X11 na starcie, aby uzyskać funkcjonalność schowka i inne rzeczy, które mogą prowadzić do „długi czas rozruchu po uruchomieniu Vima w emulatorze terminala i połączenie do serwera X jest powolna”

Istnieją trzy sposoby, aby rozwiązać ten problem:

  1. Vima z«vim -X»wyłącza Thi komunikacja s X11
  2. Wywoływanie „unset DISPLAY” wyłącza również komunikację X11
  3. Jeśli Vim został skompilowany bez „+X11” cecha ta komunikacja nie nastąpi

Poszedłem na „unset DISPLAY” odkąd” dostaję inne dziwne komunikaty o błędach, a teraz vim uruchamia się niemal natychmiast. Przetestowałem także parametr -X, który również rozwiązał problem (nawet przy ustawionym parametrze DISPLAY).

+0

Dodałem "unset DISPLAY" do mojego screenrc. –

+0

Próbowałem numerów 1 i 2, a one nie działały dla mnie. Ustawienie "set mouse =" w .vimrc zrobiło lewę. –

1

Innym częstym powodem zawieszania się vima przy starcie jest próba dostępu do GPM (np. Niestandardowe czcionki itp.). W moim przypadku miałem te same objawy, ale okazało się, że jest to problem związany z myszą z GPM.

Umieszczenie w moim pliku .vimrc (z: http://www.linuxquestions.org/questions/slackware-14/vim-freeze-at-startup-when-in-ssh-session-856606/) naprawiło problem zawieszania przy starcie z 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 

Nadzieja to pomaga innym czytelnikom, że tędy :)

0

związanych z wymienionym przypadku vim wisi przy starcie podczas próby dostępu GPM, można stwierdzić, czy jest to przypadek korzystania strace. Pierwsze uruchomienie vim w jednym terminalu/konsoli tak, że wisi

vim 

następnie przejść do innego terminala, uzyskać PID i strace go

$> pgrep vim       
32502 

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

Mamy więc przypadek GPM. Wystarczy ponownie uruchomić usługę GPM i jesteśmy dobrze iść

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

Korzystanie strace vim aby znaleźć błąd dał mi tak:

.vim/pakiet/Vundle.vim”{st_mode = S_IFDIR | 0755, st_size = 4096, ...}) = 0 getdents (4,/* 0 wpisów * /, 32768) = 0 blisko (4) = 0 --- SIGSEGV (błąd Segmentacja) @ 0 (0) ---

więc usuwanie Vundle.vim naprawiono problem.