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]

33975 active golfers, 412478 entries, 544 challenges

Open VimGolf challenges

Add to end of each line... kinda - 307 entries

Visual-block mode can be used to add something to the end of each line, even if they are of differing lengths. However, what if it's not quite at the end?

Vice versa - 7598 entries

Little role switching.

Maze path - 32 entries

Follow the given motions and mark your path with Xs. Attention: This maze is quite big (20x20), please set your terminal size to at least 82.

Simple, Practical, and Common - 33028 entries

Simple things we do all the time should be able to be done with very few keystrokes, but sometimes I find something I need to do makes me go, "There MUST be a better way." This challenge is just a simple movement and entering text at a certain place.

Make HTML List - 994 entries

Turn the comma separated list into an unordered html list.

Collect List - 4203 entries

Convert to comma separated list.

Entries sort - 80 entries

It cames to my mind a weird idea : sorting parts of my .vimrc. Take few minutes to sort out this, it's easy !

Mirror Symmetry - 787 entries

Add backslashes.

Restore order to the alphabet - 182 entries

The numbers are OK. The letters are wonky.

Line 'em up! - 373 entries

It can be so hard to keep everything neatly lined-up. Somebody clearly hasn't bothered here. Tidy it up, please!

swap or reverse - 105 entries

Try to swap or reverse the line as needed.

Tiny column alignment - 39 entries

Align using the four blocks, don't forget to lowercase and have fun!

readability - 309 entries

Make the code readable by adding some spaces

remove all lines in first part - 188 entries

From the second part, remove all lines in the first part. It can be useful when you have done something from a long list, you want to know what is not done yet!

Shuffled numbers - 224 entries

Each number is paired with the number it should follow. That's enough information to put them in order.

camel riding - 757 entries

add a prefix on some camelCase variables

Merge blank lines and properly capitalize - 69 entries

Here you need complete 2 tasks: 1. Remove all unwanted continuous blank lines and leave only 1 blank line between paragraphs. 2. Properly capitalize the sentences.

Remove hard line breaks - 61 entries

Text files with Hard breaks are not good for e-readers. We need remove all hard line breaks and have long lines.

Custom McCarthy sequence - 32 entries

Generate the first one hundred and twenty numbers (starting with n=1). See here for some inspiration:

Fix the XML - 962 entries

The challenge consists in having a valid xml from an incomplete source.

Rail fence transposition cipher - 70 entries

Solve a rail fence transposition cipher using vim. This ciphertext was created using two rails. Use vim to transpose the text and recover the original quote.

Interleave lines - 143 entries

This is some kind of « paste -d'\n' c b a ». There are many ways to achieve this.. just find the shortest!

Land of the Lost - 77 entries

Enter the tabs below the lyrics

Not enough Ps - 66 entries

Different type of code

Fill visual area - 77 entries

Just have fun!

Conway sequence - 23 entries

Generate the the first fifteen numbers. See here for more information:

Logging with key - 299 entries

Sometimes it is better to log with meaningful key

Sorting database text output - 213 entries

Sometimes it is nice to be able to quickly take column-formatted text output from the SQL command line and turn it into a list of useful data. In this case we want a unique, sorted list of the values from the second column combined into one comma-separated list. What is the fewest strokes you can do this in?

ASCII box - 324 entries

Don't forget to fix typos!

Space out the alphabet - 1602 entries

Put 3 spaces between adjacent letters.

Mute the second method of this script - 444 entries

prepend a # infront of every line of the second method

50 factorials mod 97 - 47 entries

List 1! to 50!, but give your answer mod 97.

Sort with uniq OpenEmbedded package names - 33 entries

For each line take 4th dirname of path. For example: "alsa-utils", "gawk-3.1.5", ... But! But if previous result is "files", take 3rd dirname instead. For example: "mktemp", "mklibs" ... If version is present in package name (dash is the separator character), take it. For example: "apt-" prevails over "apt". And finally, use sort -u to get unique names!

Winning streak - 124 entries

Make the number on each line equal the consecutive L's or W's.

Separating firstname & lastname - 117 entries

Seperate named with equal tabs.

Greek column realign - 42 entries

Oops one letter is missing! Shift down the second column to insert nu letter. Symbol can be entered using: <C-K>n*

Wget failed to download redirections - 180 entries

Output of a wget session, where 302 where not properly handled due to certificate problems, has been saved to a file. Keep the correct URLs to start again downloading.

C to VimDict - 46 entries

Convert a C data structure to a Vimscript dictionary.

Happy TvvO - 394 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 - 42 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 - 91 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! - 152 entries

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

Just the middle - 11281 entries

Delete the instructions at the top and bottom.

Simple Maths - 36 entries

Not much to say, discover by yourself!

Config Sections - 38 entries

Section me!

VimGolf Chatter