2009-08-21 60 views
5

我剛剛編譯VIM 7.2在Linux服務器上(在我的用戶目錄,由於服務器過VIM 6只裝,我想升級,但沒有root權限)。的Vim 7.2掛起在啓動時,「killall vim的」修復它

當我輸入「vim」時,它在啓動時掛起而沒有任何響應,但是當我從另一個ssh窗口調用「killall vim」時,啓動完成並且vim似乎在此之後正常工作。爲什麼會這樣,我該如何解決?

非常感謝您的答覆。

回答

5

strace vim可能會告訴你什麼是掛了。

+1

我有同樣的問題,strace救了我一天 – Nazgob 2010-12-07 08:19:13

+0

謝謝!用'strace',我看到它被卡住了'DISPLAY'環境變量的使用,然後意識到它被錯誤地設置了。 – 2015-07-22 11:51:00

16

嗯,我找到了答案:

: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

1

爲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 

希望這有助於這一方式:)

0

與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 ] 
0

使用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解決了這個問題。