Vim is a widely used text editor that often ships with Ubuntu in a minimal form known as vim-tiny. This limited variant excludes critical capabilities such as advanced syntax highlighting, extended plugin support, and comprehensive configuration options.
Developers and system administrators frequently rely on the full version of Vim for tasks like software development, server configuration, and large-scale text processing. Its broad feature set streamlines workflows by offering deeper integration with programming languages and powerful editing functions.
The complete Vim package is included in the default apt repositories on Ubuntu, making it straightforward to install. This version unlocks extensive customization, plugin integration, and additional functionality that surpass standard text editing requirements.
Steps to install full version of Vim on Ubuntu and Debian variance:
- Open terminal from the application launcher or via the <ctrl> + <alt> + <t> keyboard shortcut.
- 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
- 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) ...
- 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.
- 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
- 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 |

Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
Comment anonymously. Login not required.