2

我使用 mercurial 克隆了 vim 源,并运行了以下命令:

make distclean
./configure --with-features=huge
make 
sudo make install

所有这些命令的输出似乎都很正常。然而,我的 vim --version 的输出缺少应该在./configure(xterm_clipboard例如) 时启用的功能。我该如何诊断这个问题?我的目标是启用netbeans_intg.

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 23 2010 12:50:41)
Included patches: 1-315
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Huge version without GUI.  Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
+menu +mksession +modify_fname +mouse -mouseshape +mouse_dec +mouse_gpm
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte
+multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra +perl +postscript
+printer +profile +python +quickfix +reltime +rightleft +ruby +scrollbind
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse
+textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup
-X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/etc"
 f-b for $VIMRUNTIME: "/usr/share/vim/vim72"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -O2 -g -pipe -Wall  -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64  -D_FORTIFY_SOURCE=1    -D_REENTRANT -D_GNU_SOURCE   -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm  -I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE  -I/usr/local/include/python2.6 -pthread  -I/opt/local/ruby-1.8.7/lib/ruby/1.8/x86_64-linux
Linking: gcc   -L.  -rdynamic -Wl,-export-dynamic  -Wl,-E -Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE   -L/usr/local/lib -o vim       -lselinux  -lncurses -lacl -lgpm   -Wl,-E -Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE  /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/DynaLoader/DynaLoader.a -L/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE -lperl -lresolv -lutil -lc -L/usr/local/lib/python2.6/config -lpython2.6 -lutil -Xlinker -export-dynamic  -lruby-static -lm
4

3 回答 3

5

你确定你正在运行你构建的vim,而不是你系统上已经存在的另一个vim?在任何情况下,该 vim 都没有构建任何 GUI (X11) 支持,正如您Huge version without GUI在日志中看到的那样。

包括huge不会让您获得所有功能;它只会让你得到很多。如果需要 X11 和xterm_clipboard,请确保指定 X11 构建选项。对于基于 GTK 的系统,您可以执行以下操作:

./configure --with-features=huge --enable-gui=gtk2

这将为您提供大部分 X11/图形功能。如果您不使用 GTK2,则必须指定其他内容;查看./configure --help功能列表。

您需要安装各种 GTK/X11(或您使用的任何 GUI)开发库才能使用 GUI 支持进行构建。它可能正在尝试使用 X11 支持进行构建,但您没有正确的库。检查您的configure输出是否有错误。

正如其他人所建议的那样,您的操作系统可能具有您需要的所有功能的预构建二进制文件,但我发现我最终总是不得不为一件事或另一件事编译它,所以值得弄清楚。如果您提供有关您正在运行的操作系统的更多信息(如果是 OSX,它是哪个补充包系统),那么有人可能会提出特定于操作系统的二进制包建议。

于 2013-03-10T20:08:43.420 回答
2

当您没有在大型构建中启用某些功能时,这可能是由于缺少依赖项。该configure脚本会运行大量检测,并...-devel在缺少相应的库或包时跳过某些功能。安装这些最简单的方法是通过

$ sudo apt-get build-dep vim-gnome # Debian-based
$ sudo yum-builddep vim-gnome # Redhat

对于 Netbeans 集成,romainl 的评论可能是正确的,即仅在 GVIM 中可用(但也应该通过您的调用来构建)。

于 2013-03-10T19:48:39.077 回答
2

How can I diagnose this problem?

这样做的方法是手动 回顾./configure输出,看看它找不到什么东西。要做到这一点,并且由于输出不是真正“用户友好”,您必须向后滚动并扫描输出以查找以“no”结尾的行,例如:

checking if X11 header files can be found... no

^ 这将向您发出信号,您需要安装某种 X11 开发包等。

也许您需要 GUI 支持来启用 netbeans?我在该部分中看到了“无 GUI”Huge version without GUI部分。

手动执行此操作最初需要一些努力和试错。因为要真正让它在 GUI 支持中编译,你必须安装一堆不同的包来获得所有正确的开发头文件(至少根据我的个人经验!)。所以就像人们说的那样,尝试搜索并安装 X11 开发包和 gtk2-devel 包^^

(我想有一次我很沮丧

于 2013-03-10T20:15:23.243 回答