Want to learn and master Vim script?

Join Exercism’s Vim script Track for access to 60 exercises with automatic analysis of your code and personal mentoring, all 100% free.

Explore exercises

About Vim script

function! Hello(...) abort
  let name = (a:0 == 1 ? a:1 : 'World')
  return 'Hello, ' . name . '!'
endfunction

Key Features of Vim script


Vim script

Extensible

Looking for certain functionality? It can be easily created and deployed.

Deep Vim integration

Productivity win! Access and manipulate Vim internal data structures and settings with ease.

Expressive syntax

Do a lot with a little. Write compact scripts that are highly readable.

Multi-paradigm

Supports writing imperatively or functionally.

Highly interoperable

Access files, shells, & other programs. All the power of external tooling without leaving Vim.

Event-driven programming

Automatic code execution based on certain events or conditions like file opens or buffer saves.

Get mentored the Vim script way

Every language has its own way of doing things. Vim script is no different. Our mentors will help you learn to think like a Vim script developer and how to write idiomatic code in Vim script. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Vim script - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Vim script exercises

The Vim script track on Exercism has 60 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Vim script exercises
Vim script

Get started with the Vim script track

The best part, it’s 100% free for everyone.