function! Hello(...) abort let name = (a:0 == 1 ? a:1 : 'World') return 'Hello, ' . name . '!' endfunction
Get better at programming through fun, rewarding coding exercises that test your understanding of concepts with Exercism.
Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
Change the data format for scoring a game to more easily add other languages.
Take a nested list and return a single list with all values except nil/null.
Looking for certain functionality? It can be easily created and deployed.
Productivity win! Access and manipulate Vim internal data structures and settings with ease.
Do a lot with a little. Write compact scripts that are highly readable.
Supports writing imperatively or functionally.
Access files, shells, & other programs. All the power of external tooling without leaving Vim.
Automatic code execution based on certain events or conditions like file opens or buffer saves.
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
The Vim script track on Exercism has 51 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
The best part, it’s 100% free for everyone.