為什麼我的 vim-7.3 編譯無法包含客戶端伺服器?
我正在嘗試編譯 vim-7.3 將啟用所有功能。我跑了配置
$ ./configure --with-features=huge --enable-gui --enable-cscope $ make ; make install
當我檢查版本時,它顯示幾個功能仍未安裝。
沒有圖形使用者界面的巨大版本。包含 (+) 或不包含 (-) 的功能: +arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent -clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path ….
現在根據vimdoc
N +瀏覽
N +客戶端伺服器
它說
因此,如果一個特性被標記為“N”,它就包含在 Vim 的普通、大和巨大版本中。
features.h
還說+啟用了所有可能的功能。
根據上面提到的兩個資源,
huge
意味著所有功能都已啟用。即使不是全部,也至少+clientserver
必須+browse
在huge
編譯模式下啟用。但我的經驗並非如此。巨大的編譯未能包括瀏覽和客戶端伺服器功能。
- 為什麼會這樣?難道我對文件的理解不正確?
- 如何啟用客戶端伺服器功能?
- 如何啟用gui?
- 是否可以簡單地啟用所有功能?正如建議的那樣,我厭倦了
features.h
它會啟用所有可能的功能,但它沒有用。謝謝你的時間。
編輯:問題解決了!
感謝你們所有人的無價幫助。
我檢查了,
vim73/src/auto/config.log
很明顯缺少很多依賴項。Gert post 給出了需要哪些包的想法。我用了:$ yum -yv install libXt.i686 libXt-devel.i686 \ libXpm.i686 libXpm-devel.i686 \ libX11.i686 libX11-common.noarch libX11-devel.i686 \ ghc-cairo-devel.i686 cairo.i686 \ libgnomeui-devel.i686 \ ncurses.i686 ncurses-devel.i686 ncurses-libs.i686 ncurses-static.i686 \ ghc-gtk-devel.i686 gtk+-devel.i686 \ gtk2.i686 gtk2-devel.i686 \ atk-devel.i686 atk.i686 \ libbonoboui.i686 libbonoboui-devel.i686
有些軟體包已經安裝,有些則沒有。在那之後:
$ ./configure --with-features=huge --enable-cscope --enable-gui=auto $ make ; make install
現在我的 vim 擁有所有與
huge
.帶有 GTK2 GUI 的巨大版本。包含 (+) 或不包含 (-) 的功能:
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff
+digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi
…
謝謝
根據this building Vim page,您將需要在 Ubuntu 上的這些依賴項
sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev
再跑
configure
。./configure --with-features=huge --enable-gui=gnome2 --enable-cscope
我試過了,一切似乎都已啟用。
feature.h 中的測試是
#if (defined(WIN32) || defined(FEAT_XCLIPBOARD)) && defined(FEAT_EVAL) # define FEAT_CLIENTSERVER #endif
所以你必須確保啟用了 FEAT_XCLIPBOARD。這是在這裡完成的:
#if defined(FEAT_NORMAL) && defined(FEAT_VISUAL) \ && (defined(UNIX) || defined(VMS)) \ && defined(WANT_X11) && defined(HAVE_X11) # define FEAT_XCLIPBOARD # ifndef FEAT_CLIPBOARD # define FEAT_CLIPBOARD # endif #endif
所以看起來你好像錯過了一些 X11-devel 包。