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]

Played Challenges

Resort and deup a CSV list - 122 entries

I'm always adding items to a sorted list. There has to be a better way dedup and resort the lists. There are multiple lists with varying lengths to discourage manual sorting. Also Australia's animals are weird.

  • Best score: 44
  • Best player score: 70
  • Number of attempts: 1
Rule 110 - 31 entries

Compute the next 5 iterations of Rule 110 with the given starting state. https://en.wikipedia.org/wiki/Rule_110

  • Best score: 43
  • Best player score: 63
  • Number of attempts: 3
Python challenge - 114 entries

Change the types of the variables in the list from str to float, while keeping the truncation.

  • Best score: 31
  • Best player score: 35
  • Number of attempts: 2
convert yml into java pojo field - 717 entries

How fast vim can create fields for java pojo i.e class declaration referring to a (simple) yml file

  • Best score: 29
  • Best player score: 30
  • Number of attempts: 1
Simple, Practical, and Common - 26791 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.

  • Best score: 22
  • Best player score: 22
  • Number of attempts: 4
I forgot quotes - 12707 entries

Oops.

  • Best score: 10
  • Best player score: 10
  • Number of attempts: 4
Put the months in order - 577 entries

Our contractor thought that months should be in alphabetical order. Put them in calendar order please.

  • Best score: 20
  • Best player score: 27
  • Number of attempts: 3
remove lines containing the word "reader" - 2174 entries

easy stuff

  • Best score: 9
  • Best player score: 9
  • Number of attempts: 2
Add semicolons - 4306 entries

Simply add a semicolon at the end of each line

  • Best score: 10
  • Best player score: 11
  • Number of attempts: 1
On Being Stylish - 50 entries

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

  • Best score: 33
  • Best player score: 46
  • Number of attempts: 2
Change part of a function name in multiple occurrences - 478 entries

Change the middle part of the function name in multiple places, preferably using the next and dot commands.

  • Best score: 14
  • Best player score: 18
  • Number of attempts: 1
Combines all items - 244 entries

For each line that starts with the same number I want to combine its contents

  • Best score: 9
  • Best player score: 9
  • Number of attempts: 2
Box it - 4229 entries

Create a box around a line.

  • Best score: 21
  • Best player score: 22
  • Number of attempts: 2
Join 'em - 180 entries

This shouldn't be too tough

  • Best score: 5
  • Best player score: 5
  • Number of attempts: 1
Unsemantic linewrapping - 470 entries

[Inspired by a blog post I read: https://scott.mn/2014/02/21/semantic_linewrapping/. Text adapted.] Sometimes when editing a Markdown file, I wrap the lines semantically. Instead of inserting a newline at 70 columns (or whatever), or making paragraphs one long line, I put in newlines at a point that seems logical to me. This may seem silly, but it produces better diffs. Semantic linewrapping also makes editing snappier. I can delete, edit or insert sentences easily using linewise operations. Code-oriented text editors like Vim and [REDACTED] are really good at this kind of manipulation. Editing text that hasn't been wrapped semantically is a pain, though:

  • Best score: 9
  • Best player score: 10
  • Number of attempts: 2
Delete to the end of the current line - 540 entries

Delete to the end of the current line, but keep the character under the cursor.

  • Best score: 5
  • Best player score: 5
  • Number of attempts: 1
Applying same text modification in several lines - 1989 entries

Remove identical text at the beginning of several lines and the closing parenthesis.

  • Best score: 13
  • Best player score: 15
  • Number of attempts: 2
change parenthesis - 186 entries

change the pair of braces into a pair of parentheses

  • Best score: 9
  • Best player score: 9
  • Number of attempts: 1
Just the middle - 9671 entries

Delete the instructions at the top and bottom.

  • Best score: 7
  • Best player score: 8
  • Number of attempts: 1
Words in parens - 11370 entries

We should all ace this, right?

  • Best score: 14
  • Best player score: 15
  • Number of attempts: 2
Swap the operands under comparison - 226 entries

Swap the operands under comparison to prevent null pointer exception (at least in java)

  • Best score: 19
  • Best player score: 21
  • Number of attempts: 1
ninja substitution - 757 entries

How can you reuse a previous substitution ?

  • Best score: 14
  • Best player score: 16
  • Number of attempts: 2
Nesting SASS - 228 entries

Move a block inside another block and indent it

  • Best score: 9
  • Best player score: 9
  • Number of attempts: 4
Turn a ninja to case-insensitive [Nn][Ii][Nn][Jj][Aa] regexp! - 40 entries

I bumped into this in a dailywtf code: http://pastebin.com/QApa5ycS I didn't want to translate a string whenever I wanted to be [Ss][Aa][Rr][Cc][Aa][Ss][Tt][Ii][Cc] on slack, so I figured a script (python, sed, whatever) would be helpful. Well, or a few vim keystroke!

  • Best score: 18
  • Best player score: 18
  • Number of attempts: 1
Tables, Functions, Sprocs - 81 entries

In order to load some scripts into my database in the correct order I need to load tables first (t_), then functions (fn_), then stored procedures (sp_). The order of the t_ lines and the order of the sp_ lines should also match. Reorder the lines so they will load correctly.

  • Best score: 10
  • Best player score: 12
  • Number of attempts: 1
Order and join - 772 entries

There's something special about the input order.

  • Best score: 10
  • Best player score: 12
  • Number of attempts: 3
Around the clock - 150 entries

You'll want to use 2 special commands to complete this. If you haven't yet, read through 'input.txt', especially :help simple-changes

  • Best score: 13
  • Best player score: 13
  • Number of attempts: 2
Adam's challenge - 832 entries

Change both normal to bold and 4 by 2. Adam Wathan challenge this on twitter . He did it in 11 keystrokes on Sublime.

  • Best score: 18
  • Best player score: 18
  • Number of attempts: 3
Simple text editing with Vim - 10672 entries

Make the pairs of lines match up by making each second line same as first

  • Best score: 13
  • Best player score: 13
  • Number of attempts: 2
Com(m)a Trouble - 2090 entries

Someone was real stupid when placing his commas. Can you fix it?

  • Best score: 12
  • Best player score: 13
  • Number of attempts: 2
Reorder the groups - 690 entries

Change the order so that the groups of fruit come before the vegetables.

  • Best score: 14
  • Best player score: 14
  • Number of attempts: 1
Swap values inside brackets - 1757 entries

Easy challenge.

  • Best score: 13
  • Best player score: 16
  • Number of attempts: 2

Contributed Challenges

Reorder the groups - 690 entries

Change the order so that the groups of fruit come before the vegetables.

Valacar
Twitter:

entered into 32 challenges

contributed 1 challenges