2009-08-21 25 views
5

Tôi vừa biên dịch vim 7.2 trên máy chủ Linux (trong thư mục người dùng của tôi, vì máy chủ có cài đặt vim 6 và tôi muốn nâng cấp nhưng không có đặc quyền root).Vim 7.2 treo khi khởi động, "killall vim" sửa lỗi

Khi tôi nhập "vim", nó bị treo khi khởi động mà không có bất kỳ phản hồi nào, nhưng khi tôi gọi "killall vim" từ cửa sổ ssh khác, khởi động hoàn tất và vim có vẻ hoạt động tốt sau đó. Tại sao điều đó lại xảy ra, và làm thế nào tôi có thể sửa nó?

Rất cám ơn câu trả lời của bạn.

Trả lời

5

strace vim có thể sẽ cho bạn biết những gì đang treo.

+1

tôi có cùng sự cố, strace đã lưu ngày của tôi – Nazgob

+0

Cảm ơn! Với 'strace', tôi thấy nó đã bị kẹt xung quanh việc sử dụng biến môi trường' DISPLAY' và sau đó nhận ra nó đã được đặt không chính xác. –

16

Vâng, tôi tìm thấy câu trả lời:

:help -X 

cho thấy Vim cố gắng kết nối đến máy chủ X11 khi khởi động để có được chức năng vào clipboard và các công cụ khác, có thể dẫn đến một thời gian "dài khởi động khi chạy Vim trong một mô phỏng thiết bị và kết nối đến máy chủ X là chậm"

có ba cách để giải quyết vấn đề này:

  1. Bắt đầu từ Vim với 'vim -X' vô hiệu hóa thi s X11 truyền
  2. Calling "unset DISPLAY" cũng vô hiệu hóa giao tiếp X11
  3. Nếu Vim được biên dịch không có tính năng "+X11", thông tin liên lạc này sẽ không diễn ra

tôi đã đi cho "unset DISPLAY" kể từ khi tôi đã nhận được thông báo lỗi khác lạ, và bây giờ vim bắt đầu tất cả, nhưng ngay lập tức. Tôi cũng đã kiểm tra tham số -X, giải quyết vấn đề này (ngay cả khi tham số DISPLAY vẫn được thiết lập).

+0

Tôi đã thêm "unset DISPLAY" vào screenrc của mình. –

+0

Tôi đã thử số 1 và 2 và chúng không hoạt động đối với tôi. Thiết lập 'set mouse =' in .vimrc đã thực hiện thủ thuật. –

1

Một lý do phổ biến khác cho việc vim treo khi khởi động là khi nó đang cố truy cập vào GPM (ví dụ: phông chữ tùy chỉnh, v.v.). Trong trường hợp của tôi, tôi đã có các triệu chứng tương tự, nhưng nó đã trở thành một vấn đề liên quan đến chuột với GPM.

Đưa các mục sau (từ: http://www.linuxquestions.org/questions/slackware-14/vim-freeze-at-startup-when-in-ssh-session-856606/) vào trong .vimrc của tôi đã khắc phục sự cố treo khi khởi động với 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 độc giả khác đi kèm theo cách này :)

0

liên quan đến vụ việc nêu của vim treo lúc khởi động khi cố gắng truy cập GPM, bạn có thể biết đây là trường hợp sử dụng strace. Đầu tiên chạy vim trong một thiết bị đầu cuối/console để nó treo

vim 

sau đó đi đến thiết bị đầu cuối khác, có PID và strace nó

$> pgrep vim       
32502 

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

Vì vậy, chúng tôi có một trường hợp GPM. Chỉ cần khởi động lại dịch vụ GPM và chúng tôi rất tốt để đi

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

Sử dụng strace vim để tìm ra lỗi cho tôi này:

.vim/bó/Vundle.vim", {st_mode = S_IFDIR | 0755, st_size = 4096, ...}) = 0 getdents (4,/* 0 mục * /, 32768) = 0 gần (4) = 0 --- SIGSEGV (Segmentation lỗi) @ 0 (0) ---

để loại bỏ Vundle.vim đã khắc phục sự cố.

Các vấn đề liên quan