Skip to content

Instantly share code, notes, and snippets.

@robbie-cao
Last active August 3, 2021 15:51
Show Gist options
  • Save robbie-cao/1b8e786b1dfac3003e23bcc8e7867a6a to your computer and use it in GitHub Desktop.
Save robbie-cao/1b8e786b1dfac3003e23bcc8e7867a6a to your computer and use it in GitHub Desktop.
apt-get install vim with full feature

http://vi.stackexchange.com/questions/4873/is-there-a-difference-between-sudo-apt-get-vim-and-configure-with-feature

If you look at the options used to build the various packages (in debian/rules), you'll see

OPTFLAGS+=--with-features=huge

...

NOINTERPFLAGS:=--disable-luainterp
NOINTERPFLAGS+=--disable-mzschemeinterp
NOINTERPFLAGS+=--disable-perlinterp
ifeq ($(DEB_VENDOR),Ubuntu)
    NOINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
else
    NOINTERPFLAGS+=--disable-pythoninterp
endif
NOINTERPFLAGS+=--disable-python3interp
NOINTERPFLAGS+=--disable-rubyinterp
NOINTERPFLAGS+=--disable-tclinterp

ALLINTERPFLAGS:=--enable-luainterp
ALLINTERPFLAGS+=--disable-mzschemeinterp
ALLINTERPFLAGS+=--enable-perlinterp
ALLINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--disable-python3interp
ALLINTERPFLAGS+=--enable-rubyinterp
ALLINTERPFLAGS+=--enable-tclinterp
ALLINTERPFLAGS+=--with-tclsh=/usr/bin/tclsh

...

CFLAGS_vim-basic:=$(CFLAGS)
CFGFLAGS_vim-basic:=$(CFGFLAGS) $(OPTFLAGS) $(NOXFLAGS) $(NOINTERPFLAGS)

CFLAGS_vim-tiny:=$(CFLAGS) -DTINY_VIMRC
CFGFLAGS_vim-tiny:=$(CFGFLAGS) $(TINYFLAGS)

CFLAGS_vim-gtk:=$(CFLAGS)
CFGFLAGS_vim-gtk:=$(CFGFLAGS) $(OPTFLAGS) $(GUIFLAGS) $(GTKFLAGS) $(ALLINTERPFLAGS)

CFLAGS_vim-gnome:=$(CFLAGS)
CFGFLAGS_vim-gnome:=$(CFGFLAGS) $(OPTFLAGS) $(GUIFLAGS) $(GNOMEFLAGS) $(ALLINTERPFLAGS)

CFLAGS_vim-athena:=$(CFLAGS)
CFGFLAGS_vim-athena:=$(CFGFLAGS) $(OPTFLAGS) $(GUIFLAGS) $(ATHENAFLAGS) $(ALLINTERPFLAGS)

CFLAGS_vim-nox:=$(CFLAGS)
CFGFLAGS_vim-nox:=$(CFGFLAGS) $(OPTFLAGS) $(NOXFLAGS) $(ALLINTERPFLAGS)

So:

  • all packages except vim-tiny gets built with --with-features=huge
  • vim-basic (aka vim) has interpreters turned off
  • the others have options based on frontend, with interpreters turned on.

To pick one:

  • If you'd like a barebones Vim, pick vim-tiny.
  • If you'd like a more full-featured Vim, pick vim.
  • If you'd like all the features that the packaging allows, but don't want GUI (and the dependencies of a GUI), pick vim-nox.
  • If you'd like a GUI, and but don't want anything to do with GTK, pick vim-athena.
  • If you'd like a GUI, and use a GNOME-based desktop environment (GNOME, Unity, Cinnamon, etc.), pick vim-gnome.
  • If you'd like a GUI, and don't use a GNOME-based desktop environment (XFCE, LXDE, etc.), pick vim-gtk.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment