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]

30737 active golfers, 372891 entries, 513 challenges

Open VimGolf challenges

remove all lines in first part - 162 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!

expand a list comprehension (python) - 275 entries

Please show your way to convert a list comprehension in python to an ordinary for-loop expression!

Wget failed to download redirections - 169 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.

Number an outline - 210 entries

The indent and words are right, but the numbers are all wrong.

citizen_hacks_2019_challenge6 - 40 entries

For the Citizen Hacks 2019 Vim competition.

Fix the Haiku - 251 entries

Change this slightly scrambled haiku to its unscrambled form and fix the capitalisation and punctuation along the way.

Kolakoski sequence -- level 1 - 51 entries

Generate the Kolakoski sequence as described by its first 75 terms.

Sort the cardinal numbers - 240 entries

Maybe a simple challenge.

A grid of punctuation - 112 entries

Create a checkerboard of = and - in an 80×24 grid!

Top X - 185 entries

The End File is the Top 10 Vimgolf Leaderboard at June 29, 2013. This is a second version, with a great contribution of @udioica. X is ten in Roman,a numeric system in ancient Rome

Round Round - 242 entries

Round Round

Subtraction - 155 entries

Solve the equations.

Change attribute to getter - 98 entries

Wrap attributes with a getter method.

Change name of a variable - 154 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.

Inner hyphens - 116 entries

Yet another hyphen challenge. Adding 5 hyphens to a file shouldn't be too hard.

increment by column in XML - 143 entries

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

Recursively Palindrome - 226 entries

Note that there are 2^6-1 characters.

Python to Ruby - 188 entries

Convert this Python code to Ruby. NOTE: This program likely won't run.

Test everything! - 136 entries

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

Java Array2List - 216 entries

Convert an java array initializer into a list.

Generate Fibonacci Numbers - 218 entries

Use your super vim powers to generate Fibonacci Numbers.

Hash staircase - 38 entries

Can you use a strategy to come up with this pattern?

Cleanining up 80 column concatenated text - 185 entries

1. Put the whole query on one line, remove the concatenation operators 2. Remove the double spaces that appear a few times in the query 3. Use string-interpolated variable statementPid rather than the ugly concatenation

Manual SQL - 114 entries

Change select and insert queries to simulate inserting a new record.

Interleave lines - 127 entries

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

Aligning function arguments to match a specific coding style - 181 entries

Most projects have specific coding style guidelines. In this case, the argument list must be broken into a new line for each argument, with the argument names right aligned, taking into account pointers.

Pretty format for variable declarations - 129 entries

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

Sorting a glossary - 103 entries

Sort a glossary. Glossary head contains a header phrase ending with ':' and glossary body has multi line text indented with a tab.

Parsing with CSV: Unify lines and result. - 163 entries

col1;col2;col3;col4 A;1;4;5 A;3;4; A;1;4; # New output: col1;col2;col3;col4 A;1(2x);3;4(3x);5 any ideas?

Cartesian product - 206 entries

{1,2,3,4,5} X {1,2,3,4,5}

Another Mixed-Up Haiku - 206 entries

VimGolf ... a perfect evening?

If-then-else regexp - 37 entries

Rules: - golf is never following golf - vim comes first! Drawing a finite-state machine diagram could help. #regexp

Shuffle and Sort - 172 entries

The values where sorted incorrectly. Get them back to how they are supposed to be

Refactor arguments into object argument - 159 entries

A relatively common Javascript refactoring.

It'ss tooo coold too typpe todaay - 199 entries

My hands are numb with cold. It's hard to type correctly.

Block Fun 1 - 161 entries

Manipulate the columns to produce desired result.

On Being Stylish - 51 entries

Your PR cannot be accepted if you don't follow our corporate style guide.

create arrows in a list - 74 entries

Add arrow at same distance

Complete the hex array data - 188 entries

Do not use external tools(e.g. tac, seq) [My interpretation of Rule #7]

Fun With The Diagonal - 96 entries

change the lowercase characters on the main diagonal to uppercase

Assign list - 146 entries

Assign list elements to matrix

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!

Create a pandoc compatible table - 164 entries

In [this vimcast][1], a featured gist from Tim Pope shows how to quickly make a simple table structure. How fast can you convert it to pandoc's markdown style? [1]: http://vimcasts.org/episodes/aligning-text-with-tabular-vim/

Multiplication table. - 183 entries

Create a multiplication table.

Turn this csv list into queries - 190 entries

Transform each line of this csv file into a MySQL-ready INSERT query.

PHP <--> Java class conversion Part 1 - 179 entries

Convert this tiny php class to adequate java one.

Getters & Setters: Java - 189 entries

Boilerplate getters & setters - it's a tedious fact of life in Java, and probably the only thing that still pulls me back to an IDE. Perhaps someone knows a fast, pure vim way...

Unwrap the text of an email message - 154 entries

Reverse of "Wrap the text of an email message to 79 characters". gq and gw are great for wrapping paragraphs. But sometimes other programs choke on your wrapped lines. What's the best way to un-gq?

Dehamlizing - 156 entries

Change this piece of HAML code back into erb

simple format (3) - 43 entries

reverse two column values!

VimGolf Chatter