Vim

為什麼我的 vim-7.3 編譯無法包含客戶端伺服器?

  • January 28, 2012

我正在嘗試編譯 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必須+browsehuge編譯模式下啟用。

但我的經驗並非如此。巨大的編譯未能包括瀏覽和客戶端伺服器功能。

  1. 為什麼會這樣?難道我對文件的理解不正確?
  2. 如何啟用客戶端伺服器功能?
  3. 如何啟用gui?
  4. 是否可以簡單地啟用所有功能?正如建議的那樣,我厭倦了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 包。

引用自:https://unix.stackexchange.com/questions/2807