Vim is a very powerful text editor and is available in almost all modern computing platforms. It is bundled in the default installation of almost Linux distribution, though Ubuntu and Debian ships with the minimal version of Vim which lack features such as syntax highlighting making it less powerful or useful as it could be.

Even so, Ubuntu and Debian still provides the more feature-rich version on Vim in its default apt repository.

You can install full version of Vim on Ubuntu via apt at the terminal.

Complementary video guide:

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

  1. Open terminal from the application launcher or via the <ctrl> + <alt> + <t> keyboard shortcut.
  2. View list of enabled and disabled features of currently installed Vim.
    $ vi --version
    VIM - Vi IMproved 8.1 (2018 May 18, compiled Apr 15 2020 06:40:31)
    Included patches: 1-2269
    Modified by [email protected]
    Compiled by [email protected]
    Small version without GUI.  Features included (+) or not (-):
    +acl               -farsi             -mouse_sysmouse    -tcl
    -arabic            -file_in_path      -mouse_urxvt       -termguicolors
    +autocmd           -find_in_path      +mouse_xterm       -terminal
    -autochdir         -float             +multi_byte        +terminfo
    -autoservername    -folding           -multi_lang        +termresponse
    -balloon_eval      -footer            -mzscheme          -textobjects
    -balloon_eval_term +fork()            -netbeans_intg     -textprop
    -browse            -gettext           -num64             -timers
    +builtin_terms     -hangul_input      -packages          -title
    -byte_offset       +iconv             -path_extra        -toolbar
    -channel           +insert_expand     -perl              +user_commands
    -cindent           -job               -persistent_undo   -vartabs
    -clientserver      +jumplist          -printer           +vertsplit
    -clipboard         -keymap            -profile           +virtualedit
    +cmdline_compl     -lambda            -python            +visual
    +cmdline_hist      -langmap           -python3           +visualextra
    -cmdline_info      -libcall           -quickfix          -viminfo
    +comments          -linebreak         -reltime           +vreplace
    -conceal           -lispindent        -rightleft         +wildignore
    -cryptv            +listcmds          -ruby              -wildmenu
    -cscope            +localmap          +scrollbind        +windows
    +cursorbind        -lua               -signs             +writebackup
    -cursorshape       -menu              -smartindent       -X11
    -dialog            -mksession         -sound             +xfontset
    -diff              +modify_fname      -spell             -xim
    -digraphs          +mouse             -startuptime       -xpm
    -dnd               -mouseshape        -statusline        -xsmp
    -ebcdic            -mouse_dec         -sun_workshop      -xterm_clipboard
    -emacs_tags        -mouse_gpm         -syntax            -xterm_save
    -eval              -mouse_jsbterm     +tag_binary        
    +ex_extra          -mouse_netterm     -tag_old_static    
    -extra_search      +mouse_sgr         -tag_any_white     
       system vimrc file: "$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 -fdebug-prefix-map=/build/vim-iU6mZD/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
    Linking: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl           
  3. Remove vim-tiny which is the default installation package.
    $ sudo apt remove --assume-yes vim-tiny
    [sudo] password for user: 
    Reading package lists... Done
    Building dependency tree       
    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 0 not upgraded.
    After this operation, 1,619 kB disk space will be freed.
    (Reading database ... 185227 files and directories currently installed.)
    Removing ubuntu-minimal (1.450.1) ...
    Removing vim-tiny (2:8.1.2269-1ubuntu5) ...
  4. Update apt's package list.
    $ sudo apt update
    Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
    Hit:2 http://jp.archive.ubuntu.com/ubuntu focal InRelease               
    Get:3 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
    Get:4 http://security.ubuntu.com/ubuntu focal-security/main amd64 DEP-11 Metadata [21.2 kB]
    Get:5 http://jp.archive.ubuntu.com/ubuntu focal-backports InRelease [98.3 kB]
    Get:6 http://security.ubuntu.com/ubuntu focal-security/universe amd64 DEP-11 Metadata [36.0 kB]
    Get:7 http://jp.archive.ubuntu.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [196 kB]
    Get:8 http://jp.archive.ubuntu.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [177 kB]
    Get:9 http://jp.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [2,468 B]
    Get:10 http://jp.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [1,972 B]
    Fetched 751 kB in 6s (130 kB/s)                                            
    Reading package lists... Done
    Building dependency tree       
    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       
    Reading state information... Done
    The following additional packages will be installed:
      vim-runtime
    Suggested packages:
      ctags vim-doc vim-scripts
    The following NEW packages will be installed:
      vim vim-runtime
    0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
    Need to get 7,111 kB of archives.
    After this operation, 34.6 MB of additional disk space will be used.
    ##### snipped
  6. Verify package is successfully installed and view the list of enabled features.
    $ vi --version
    VIM - Vi IMproved 8.1 (2018 May 18, compiled Apr 15 2020 06:40:31)
    Included patches: 1-2269
    Modified by [email protected]
    Compiled by [email protected]
    Huge version without GUI.  Features included (+) or not (-):
    +acl               -farsi             -mouse_sysmouse    -tag_any_white
    +arabic            +file_in_path      +mouse_urxvt       -tcl
    +autocmd           +find_in_path      +mouse_xterm       +termguicolors
    +autochdir         +float             +multi_byte        +terminal
    -autoservername    +folding           +multi_lang        +terminfo
    -balloon_eval      -footer            -mzscheme          +termresponse
    +balloon_eval_term +fork()            +netbeans_intg     +textobjects
    -browse            +gettext           +num64             +textprop
    ++builtin_terms    -hangul_input      +packages          +timers
    +byte_offset       +iconv             +path_extra        +title
    +channel           +insert_expand     -perl              -toolbar
    +cindent           +job               +persistent_undo   +user_commands
    -clientserver      +jumplist          +postscript        +vartabs
    -clipboard         +keymap            +printer           +vertsplit
    +cmdline_compl     +lambda            +profile           +virtualedit
    +cmdline_hist      +langmap           -python            +visual
    +cmdline_info      +libcall           +python3           +visualextra
    +comments          +linebreak         +quickfix          +viminfo
    +conceal           +lispindent        +reltime           +vreplace
    +cryptv            +listcmds          +rightleft         +wildignore
    +cscope            +localmap          -ruby              +wildmenu
    +cursorbind        -lua               +scrollbind        +windows
    +cursorshape       +menu              +signs             +writebackup
    +dialog_con        +mksession         +smartindent       -X11
    +diff              +modify_fname      +sound             -xfontset
    +digraphs          +mouse             +spell             -xim
    -dnd               -mouseshape        +startuptime       -xpm
    -ebcdic            +mouse_dec         +statusline        -xsmp
    +emacs_tags        +mouse_gpm         -sun_workshop      -xterm_clipboard
    +eval              -mouse_jsbterm     +syntax            -xterm_save
    +ex_extra          +mouse_netterm     +tag_binary        
    +extra_search      +mouse_sgr         -tag_old_static    
       system vimrc file: "$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 -fdebug-prefix-map=/build/vim-iU6mZD/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
    Linking: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lcanberra -lacl -lattr -lgpm -ldl     -L/usr/lib/python3.8/config-3.8-x86_64-linux-gnu -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm      

Guide compatibility:

Operating System
Ubuntu 16.04 LTS (Xenial Xerus)
Ubuntu 16.10 (Yakkety Yak)
Ubuntu 17.04 (Zesty Zapus)
Ubuntu 17.10 (Artful Aardvark)
Ubuntu 18.04 LTS (Bionic Beaver)
Ubuntu 18.10 (Cosmic Cuttlefish)
Ubuntu 19.04 (Disco Dingo)
Share this guide!
Discuss the article:

Comment anonymously. Login not required.

Share!