我正在尝试编译 vim-7.3 将启用所有功能。我运行配置
$ ./configure --with-features=huge --enable-gui --enable-cscope
$ make ; make install
当我检查版本时,它显示一些功能仍未安装。
没有GUI的巨大版本。包含 (+) 或不包含 (-) 的功能:+arabic +autocmd -balloon_eval-浏览++builtin_terms +byte_offset +cindent -客户端服务器-剪贴板+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 ....
现在根据维姆文档
氮 +浏览
氮 +客户端服务器
它说
因此,如果某个功能被标记为“N”,则它包含在 Vim 的普通版本、大版本和巨大版本中。
features.h
还说
+启用了所有可能的功能。
根据上面提到的两个资源,huge
意味着所有功能都已启用。即使不是全部,至少+clientserver
也+browse
必须在huge
编译模式下启用。
但我的经验却表明事实并非如此。巨大的编译未能包括浏览和客户端服务器功能。
- 为什么会这样呢?难道是我对文档的理解有误?
- 如何启用客户端服务器功能?
- 如何启用图形用户界面?
- 是否可以启用全部特点简单吗?我厌倦了巨大的
features.h
建议,它将启用所有可能的功能,但它不起作用。
谢谢你的时间。
编辑:问题解决了!
感谢你们所有人的无价帮助。
我检查过vim73/src/auto/config.log
,很明显缺少很多依赖项。格特帖子给出了需要哪些软件包的想法。我用了:
$ 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
+客户端服务器+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
...
谢谢
答案1
根据这座建筑 Vim 页面,你需要 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
我已经尝试过了,一切似乎都已启用。
答案2
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 包。
答案3
您需要查看./configure
和 的输出config.log
。