Vim 9.0 Released with New Script Syntax, Popup Menu Command Completion

The popular Vim text editor released new major 9.0 version few days ago with many new features and large number of new features.

The new release introduced Vim9 script with drastic performance improvements. The execution speed can be increased via 10 to 100 times faster. However, function must be defined with def, and the argument and return types must be specified to benefit from the speed-up.

Legacy scripts will keep working as before. The new script syntax now looks a lot more like most programming languages. Line continuation does not require using a backslash; Function calls do not require call, assignments are done without let and expressions are evaluated without eval. And, comments now start with #.

Instead of the ‘wildmenu’ option, now a popup menu can be used in Vim 9 by setting “wildoptions’ to “pum”. Which, allows for showing many more command line completion matches. The updated colorschemes are also included in the release.

New options in the release including:

  • 'autoshelldir' change directory to the shell’s current directory
  • 'cdhome' change directory to the home directory by “:cd”
  • 'cinscopedecls' words that are recognized by ‘cino-g’
  • 'guiligatures' GTK GUI: ASCII characters that can form shapes
  • 'mousemoveevent' report mouse moves with
  • 'quickfixtextfunc' function for the text in the quickfix window
  • 'spelloptions' options for spell checking
  • 'thesaurusfunc' function to be used for thesaurus completion
  • 'xtermcodes' request terminal codes from an xterm

There are as well new ex commands, functions, variables and operators. See more about Vim 9 via its news page.

How to Get Vim 9 in Ubuntu Linux

Vim offers official AppImage package, along with the source tarball they are available to download at the link below:

Download Latest VIM (AppImage)

There’s another universal Flatpak package available, though not updated at the moment of writing. For Windows, MacOS and other sources, go to vim.org/download.php