Vim Autocomplete Mini-Overview

Episode #5 in the A Decade of Vim Series

by Jack Kinsella


I demonstrate six ways of doing autocomplete in Vim: based on strings in the current buffer, functions in the codebase (using Universal Ctags), file names in your project, full lines in the buffer, dictionary words, and - last-but-not-least - any class/constant/function in your codebase using the Language Server Protocol (LSP).

Show Notes


  • neovim - The vim fork I happen to use. I have no opinion on whether it's better or worse than regular Vim. This video used version 0.4.3
  • universal-ctags - A maintained version of ctags. Used to index ("tag") language objects that can be used in navigation and auto-complete.

Vim Plugins

  • vim-lsp - Language Server Protocol integration for Vim. Neovim will soon include a built-in LSP integration, so presumably most of the neovim community will switch away from third party plugins once the feature stabilizes.
  • asyncomplete.vim - The autocomplete ecoystem I used in the video. It's a bit buggy and perhaps others autocomplete engines are better (I haven't compared recently).
  • ALE linter - Provided the incidetnal linting you observed throughout the episode.


Want To Become A Stronger Programmer?

Our screencasts are aimed at intermediate and advanced programmers and focus on:

  • Timeless technologies like unix, vim, SQL, program design, software testing etc. (so your learning lasts 30 years instead of 30 months)
  • Production codebases (instead of toy examples)
  • Softer skills (especially online marketing) necessary to flourish as a financially independent software developer
  • Mailing list members receive exclusive content as well as episode alerts. Never spam.