Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put [challenge ID]

36029 active golfers, 434020 entries, 556 challenges

Open VimGolf challenges

Happy TvvO - 396 entries

Don’t forget the past, learn from it. Happy New Year.

range(10) digit rotation - 32 entries

This is a data generator challenge or some kind of gift..

increment by column in XML - 146 entries

modify an arbitrary "column" in an xml table by incrementing a an arbitrary placeholder string

Binary and Increment - 43 entries

Some numbers fun: not only increasing numbers but also increasing binary.

Refactoring useless Method away - 91 entries

Real-life challenge, convert a bunch of ifs to a switch statement

Square numbers - 99 entries

Boring math puzzle.

Hail to Alekseï Pajitnov - 33 entries

Wanna play tetris? Don't panic, it's quite long but there's no piece rotation. Little advice: source the file, Luke!

JSON string rotation - 51 entries

Right value strings are misplaced. Just rotate them! I'm too kind with you guys and didn't included "strings with \" in it"!

Test everything! - 159 entries

... and build the desired input data structure. Transform a list of values into a non-trivial format.

Just the middle - 11339 entries

Delete the instructions at the top and bottom.

Simple Maths - 45 entries

Not much to say, discover by yourself!

Config Sections - 38 entries

Section me!

Pretty format for variable declarations - 152 entries

Project standards demand the equal signs must be aligned for better readability.

Condensed Cases - 777 entries

Apple's new programming language, Swift, allows two style of case statements: 1) one Enum case on each line, or 2) multiple Enum cases on a single line. Convert the following from the first case (no pun intended) to the second type.

I forgot quotes - 15894 entries


Replace Parameter with Explicit Methods - 61 entries

Implementing the methods of a Java Interface

Basic renumbering - 5521 entries

Renumbering Basic.

Shift down - 193 entries

Number words are back.

learn vim in short time - 228 entries

so happy to learn vim.because vim is awesome

Gray area - 720 entries

It's a golf metaphor or something.

Winding path - 93 entries

It's a maze, but the bad paths have been blocked off. Mark the correct path.

That hyphen - 2543 entries

"vim vi improved"

Refactor static member invocation - 198 entries

Someone used a static method. Refactor the method into a static import while fixing the assertion.

Acute accents - 32 entries

Featuring all 17 lowercase letters with an acute accent digraph. Find a way to automate the digraphs.

Count both ways - 987 entries

Right AND down.

vim1001 - 275 entries

change number 1001 into a "vim1001 sequence". (My first challenge, hope it is not too bad... )

Roman numerals - 68 entries

Use the substitutions on top to convert unary to Roman numerals.

-a-b-c- - 3160 entries

Put hyphens everywhere.

Suffix sort - 244 entries

Sort from the end of the line, as if the letters in each line were reversed.

Comparing scores - 94 entries

If Alice and Bob both did the challenge, put their entries together in the top paragraph, so we can compare their scores more easily.

NBCU Weekly Challenge - #0 - 124 entries

One of our favorites lines here at NBCU! p.s. The first version of #0 was deleted due to me copy/pasting a HTML entity. Congrats to the one who figured that out, you are a true ninja warrior!

Lisp Condense - 438 entries

Reduce 4 cons selection operations down to one function call.

NBCU Weekly Challenge - Test - 243 entries

Just testing.

120 Degrees - 468 entries

Rotate that triangle.

V to the i - 4719 entries

Input is 99 V's. Output is 100 i's.

Subtraction - 178 entries

Solve the equations.

Change name of a variable - 169 entries

Replace the name of the $variable with the fastest move possible. The challenge is having a command that allow you to easily change the variable name even if its indented.

Don't know what this is - 1961 entries

Replace contents of brackets with matching number of spaces. Don't ask what the format's supposed to be.

Neither Fizz nor Buzz - 226 entries

Not your regular increment macro! The gaps are tricky.

Do you demand a shrubbery? - 1108 entries

Use :redir and crush the emacsgolfers.

Shuffle puzzle - 317 entries

Sort the lines in each indent group, and sort the groups. That's the pattern. Or just move lines around manually to get a better score.

Where should I put the Newline? - 857 entries

Help me put the newline.

HTML formatting: vertical alignment for readability - 63 entries

We did this a VimGolf challenge at work and now that we have finished I want to see if you guys can come up with something even better than we could. Our best solution was 44 keystrokes.

Extract argument from function - 2292 entries

The aim is to see if you can do some refactoring very fast.

Two become one - 710 entries

We have two c arrays and want to make one two dimensional out of it. Can we do that?

Piphilology - 131 entries

Piphilology comprises the creation and use of mnemonic techniques to remember a span of digits of the mathematical constant π.

Mess in revision history - 1157 entries

Help Joe clean up what Steve has cobbled.

Vim tetris - 352 entries

Vim can play tetris too!

Five Pillars - 60 entries

Arrange all words in a table with 5 columns. The minimal space between words in columns is 2 spaces. Columns do have varying width.

Write Setters and Getters for PHP - 86 entries

Just simple automation of writing Setters and Getters like Doctrine might use.

VimGolf Chatter