Vim is a text editor that comes pre-installed on most Ubuntu systems. However, the default installation, known as vim-tiny, lacks advanced features needed for more complex text editing tasks. Installing the full version of Vim on Ubuntu provides these additional capabilities.

The full version of Vim is available in Ubuntu's default apt repositories. This version includes important features like syntax highlighting and extended plugin support, making it more suitable for technical tasks such as software development and system administration.

To install the full version of Vim, you will need to remove any existing minimal installation. Then, you can use the package manager to download and install the complete version. This process ensures that you have the necessary tools for an enhanced text editing experience on your Ubuntu system.

Step-by-step video guide:

Steps to install full version of Vim on Ubuntu and Debian variance:

  1. Open terminal from the application launcher or via the <ctrl> + <alt> + <t> keyboard shortcut.
  2. Check the currently installed version of Vim and its features.
    $ vi --version
    VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Mar 31 2024 00:15:53)
    Included patches: 1-16
    Modified by team+vim@tracker.debian.org
    Compiled by team+vim@tracker.debian.org
    Tiny version without GUI.  Features included (+) or not (-):
    +acl               +file_in_path      -mouse_urxvt       -tcl
    -arabic            -find_in_path      +mouse_xterm       -termguicolors
    +autocmd           +float             +multi_byte        -terminal
    -autochdir         -folding           -multi_lang        +terminfo
    -autoservername    -footer            -mzscheme          +termresponse
    -balloon_eval      +fork()            -netbeans_intg     +textobjects
    -balloon_eval_term -gettext           +num64             -textprop
    -browse            -hangul_input      -packages          -timers
    ++builtin_terms    +iconv             +path_extra        +title
    -byte_offset       +insert_expand     -perl              -toolbar
    -channel           -ipv6              -persistent_undo   +user_commands
    +cindent           -job               -popupwin          -vartabs
    -clientserver      +jumplist          -printer           +vertsplit
    -clipboard         -keymap            -profile           +vim9script
    +cmdline_compl     -lambda            -python            -viminfo
    +cmdline_hist      -langmap           -python3           +virtualedit
    +cmdline_info      -libcall           -quickfix          +visual
    +comments          -linebreak         -reltime           +visualextra
    -conceal           +lispindent        -rightleft         +vreplace
    -cryptv            +listcmds          -ruby              +wildignore
    -cscope            +localmap          +scrollbind        +wildmenu
    +cursorbind        -lua               -signs             +windows
    -cursorshape       -menu              +smartindent       +writebackup
    -dialog            -mksession         -sodium            -X11
    -diff              +modify_fname      -sound             -xattr
    -digraphs          +mouse             -spell             +xfontset
    -dnd               -mouseshape        -startuptime       -xim
    -ebcdic            -mouse_dec         -statusline        -xpm
    -emacs_tags        -mouse_gpm         -sun_workshop      -xsmp
    -eval              -mouse_jsbterm     -syntax            -xterm_clipboard
    +ex_extra          -mouse_netterm     +tag_binary        -xterm_save
    -extra_search      +mouse_sgr         -tag_old_static
    -farsi             -mouse_sysmouse    -tag_any_white
       system vimrc file: "/etc/vim/vimrc"
         user vimrc file: "$HOME/.vimrc"
     2nd user vimrc file: "~/.vim/vimrc"
          user exrc file: "$HOME/.exrc"
           defaults file: "$VIMRUNTIME/defaults.vim"
      fall-back for $VIM: "/usr/share/vim"
    Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/vim-U10m2Q/vim-9.1.0016=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -fdebug-prefix-map=/build/vim-U10m2Q/vim-9.1.0016=/usr/src/vim-2:9.1.0016-1ubuntu7 -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -DTINY_VIMRC -DSYS_TINYRC_FILE=\"/etc/vim/vimrc.tiny\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
    Linking: gcc -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lselinux -lacl -lattr
  3. Remove the default vim-tiny package.
    $ sudo apt remove --assume-yes vim-tiny
    [sudo] password for user:
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following packages were automatically installed and are no longer required:
      vim-common xxd
    Use 'sudo apt autoremove' to remove them.
    The following packages will be REMOVED:
      ubuntu-minimal vim-tiny
    0 upgraded, 0 newly installed, 2 to remove and 1 not upgraded.
    After this operation, 1,868 kB disk space will be freed.
    (Reading database ... 154349 files and directories currently installed.)
    Removing ubuntu-minimal (1.539) ...
    Removing vim-tiny (2:9.1.0016-1ubuntu7) ...
  4. Update the package list.
    $ sudo apt update
    Hit:1 http://ports.ubuntu.com/ubuntu-ports noble InRelease
    Hit:2 http://ports.ubuntu.com/ubuntu-ports noble-updates InRelease
    Hit:3 http://ports.ubuntu.com/ubuntu-ports noble-backports InRelease
    Hit:4 http://ports.ubuntu.com/ubuntu-ports noble-security InRelease
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    All packages are up to date.
  5. Install the full version of Vim.
    $ sudo apt install --assume-yes vim
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following additional packages will be installed:
      libsodium23 vim-common vim-runtime xxd
    Suggested packages:
      ctags vim-doc vim-scripts
    The following NEW packages will be installed:
      libsodium23 vim vim-common vim-runtime xxd
    0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
    Need to get 9,658 kB of archives.
    After this operation, 44.1 MB of additional disk space will be used.
    ##### snipped
  6. Verify that the full version of Vim is installed and check its features.
    $ vi --version
    VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Mar 31 2024 00:15:53)
    Included patches: 1-16
    Modified by team+vim@tracker.debian.org
    Compiled by team+vim@tracker.debian.org
    Huge version without GUI.  Features included (+) or not (-):
    +acl               +file_in_path      +mouse_urxvt       -tag_any_white
    +arabic            +find_in_path      +mouse_xterm       -tcl
    +autocmd           +float             +multi_byte        +termguicolors
    +autochdir         +folding           +multi_lang        +terminal
    -autoservername    -footer            -mzscheme          +terminfo
    -balloon_eval      +fork()            +netbeans_intg     +termresponse
    +balloon_eval_term +gettext           +num64             +textobjects
    -browse            -hangul_input      +packages          +textprop
    ++builtin_terms    +iconv             +path_extra        +timers
    +byte_offset       +insert_expand     -perl              +title
    +channel           +ipv6              +persistent_undo   -toolbar
    +cindent           +job               +popupwin          +user_commands
    -clientserver      +jumplist          +postscript        +vartabs
    -clipboard         +keymap            +printer           +vertsplit
    +cmdline_compl     +lambda            +profile           +vim9script
    +cmdline_hist      +langmap           -python            +viminfo
    +cmdline_info      +libcall           +python3           +virtualedit
    +comments          +linebreak         +quickfix          +visual
    +conceal           +lispindent        +reltime           +visualextra
    +cryptv            +listcmds          +rightleft         +vreplace
    +cscope            +localmap          -ruby              +wildignore
    +cursorbind        -lua               +scrollbind        +wildmenu
    +cursorshape       +menu              +signs             +windows
    +dialog_con        +mksession         +smartindent       +writebackup
    +diff              +modify_fname      +sodium            -X11
    +digraphs          +mouse             -sound             +xattr
    -dnd               -mouseshape        +spell             -xfontset
    -ebcdic            +mouse_dec         +startuptime       -xim
    +emacs_tags        +mouse_gpm         +statusline        -xpm
    +eval              -mouse_jsbterm     -sun_workshop      -xsmp
    +ex_extra          +mouse_netterm     +syntax            -xterm_clipboard
    +extra_search      +mouse_sgr         +tag_binary        -xterm_save
    -farsi             -mouse_sysmouse    -tag_old_static
       system vimrc file: "/etc/vim/vimrc"
         user vimrc file: "$HOME/.vimrc"
     2nd user vimrc file: "~/.vim/vimrc"
          user exrc file: "$HOME/.exrc"
           defaults file: "$VIMRUNTIME/defaults.vim"
      fall-back for $VIM: "/usr/share/vim"
    Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/vim-U10m2Q/vim-9.1.0016=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -fdebug-prefix-map=/build/vim-U10m2Q/vim-9.1.0016=/usr/src/vim-2:9.1.0016-1ubuntu7 -DSYS_VIMRC_FILE=\"/etc/vim/vimrc\" -DSYS_GVIMRC_FILE=\"/etc/vim/gvimrc\" -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
    Linking: gcc -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lm -ltinfo -lselinux -lsodium -lacl -lattr -lgpm -L/usr/lib/python3.12/config-3.12-aarch64-linux-gnu -lpython3.12 -ldl -lm 

This guide is tested on Ubuntu:

Version Code Name
22.04 LTS Jammy Jellyfish
23.10 Mantic Minotaur
24.04 LTS Noble Numbat
Discuss the article:

Comment anonymously. Login not required.