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

Quicksort - 1757 entries

We need the numbers in the first row sorted as quickly as possible! Be careful not to disturb the data below the divider though: that must remain unchanged.

  • Best score: 6
  • Best player score: 29
  • Position: #283 / 385
  • Number of attempts: 4
EDN reformat - 1099 entries

The goal is to make the code more readable and concise while maintaining its functionality.

  • Best score: 17
  • Best player score: 33
  • Position: #115 / 153
  • Number of attempts: 2
Tic-Tac-Toe Grid Transformation - 329 entries

Your mission is to efficiently convert the original Tic-Tac-Toe grid, represented by 'x's and 'o's, into a neat and well-organized game board.

  • Best score: 56
  • Best player score: 112
  • Position: #38 / 80
  • Number of attempts: 1
Populate 3D bone names list - 525 entries

Ran into this at work, excited to see how this gets optimized

  • Best score: 21
  • Best player score: 29
  • Position: #75 / 141
  • Number of attempts: 2
Remove line numbers - 654 entries

From http://web.archive.org/web/20140831121704/http://dirac.org/linux/gdb/02a-Memory_Layout_And_The_Stack.php#investigatingthestackwithgdb.

  • Best score: 8
  • Best player score: 14
  • Position: #94 / 173
  • Number of attempts: 2
Find fix point of cos - 1204 entries

Write a function to find the fix point of cos. It is not a good code; It is just to use vim. Inspired by the excellent https://mvanier.livejournal.com/2897.html about the Y combinator.

  • Best score: 14
  • Best player score: 15
  • Position: #164 / 365
  • Number of attempts: 2
Surround the 'z' character with brackets, quotes, and print as formatted string. - 507 entries

Surround the 'z' character with brackets, quotes, and print as formatted string.

  • Best score: 17
  • Best player score: 17
  • Position: #154 / 287
  • Number of attempts: 1
Paste a column after a column - 2413 entries

This task is very common while using multi-cursor. What is the elegant vim way ?

  • Best score: 14
  • Best player score: 23
  • Position: #341 / 523
  • Number of attempts: 3
Tabbed Table to Python Array - 652 entries

Not payed by the hour? So make it fast ;-) The table contains the relative occurencies of bigrams (two consecutive letters) in 1/100,000 in the german language, copy-pasted from http://www.mathe.tu-freiberg.de/~hebisch/cafe/kryptographie/bigramme.html

  • Best score: 50
  • Best player score: 62
  • Position: #98 / 171
  • Number of attempts: 3
Reformat symbols in list - 1507 entries

Saw this in some lecture, easy reformatting using multiple cursor in VS Code

  • Best score: 24
  • Best player score: 27
  • Position: #158 / 334
  • Number of attempts: 6
Fizzbuzz - 539 entries

type the first 100 lines of the fizzbuzz problem

  • Best score: 45
  • Best player score: 76
  • Position: #80 / 162
  • Number of attempts: 1
Changing around text with citations - 324 entries

Based off of something I saw on reddit

  • Best score: 28
  • Best player score: 43
  • Position: #66 / 90
  • Number of attempts: 2
Many duplicates - 1350 entries

Quick and easy

  • Best score: 7
  • Best player score: 8
  • Position: #258 / 440
  • Number of attempts: 4
delete swap - 1650 entries

delete all swap

  • Best score: 5
  • Best player score: 5
  • Position: #292 / 514
  • Number of attempts: 5
Generate a very basic Python constructor (fixed) - 1231 entries

Original by @BiddulphCaleb (http://www.vimgolf.com/challenges/6019f1c4642668000cee11e8) - had some extra spaces in output file.

  • Best score: 29
  • Best player score: 47
  • Position: #157 / 260
  • Number of attempts: 1
Put a newline after every 10 lines in vim - 1649 entries

Goal is to put a newline after every 10 lines in vim.

  • Best score: 10
  • Best player score: 11
  • Position: #187 / 551
  • Number of attempts: 3
hello-world-vimgolf - 2472 entries

Simple number generation

  • Best score: 10
  • Best player score: 15
  • Position: #557 / 699
  • Number of attempts: 3
Contribute to keyboard mashing - 880 entries

Speak in tongues

  • Best score: 17
  • Best player score: 17
  • Position: #50 / 268
  • Number of attempts: 5
Reordering Lorem Ipsum - 265 entries

Who even sorted this?

  • Best score: 13
  • Best player score: 87
  • Position: #43 / 64
  • Number of attempts: 2
Fill in the chess board - 933 entries

Fill in the name of each square using its file (a-h) and rank (1-8).

  • Best score: 19
  • Best player score: 42
  • Position: #119 / 180
  • Number of attempts: 2
Transpose a python matrix - 848 entries

Rotate the matrix in 90 degrees.

  • Best score: 23
  • Best player score: 65
  • Position: #99 / 135
  • Number of attempts: 1
simple replacements - 1710 entries

The goal is to see the replacement commands in action.

  • Best score: 19
  • Best player score: 28
  • Position: #327 / 378
  • Number of attempts: 1
Inverting Lines - 1870 entries

A simple challenge to invert all lines, except the first.

  • Best score: 10
  • Best player score: 11
  • Position: #260 / 505
  • Number of attempts: 5
Python dataclasses - 1121 entries

Simple challenge to extract fields from a Python class

  • Best score: 19
  • Best player score: 30
  • Position: #190 / 281
  • Number of attempts: 1
Making 3 line function a one liner. - 312 entries

Simple challenge for frequent action while programming.

  • Best score: 4
  • Best player score: 4
  • Position: #165 / 200
  • Number of attempts: 1
Put a cross in the square - 210 entries

Put a cross in the square

  • Best score: 20
  • Best player score: 22
  • Position: #36 / 87
  • Number of attempts: 2
swap number pairs - 2023 entries

Swap the numbers in a bunch of 2-element arrays.

  • Best score: 16
  • Best player score: 30
  • Position: #240 / 373
  • Number of attempts: 1
HS Final exam vimgolf - 892 entries

Change the initial file to a single line containing all names comma-separated with numbers inside parentheses.

  • Best score: 21
  • Best player score: 25
  • Position: #118 / 234
  • Number of attempts: 7
Simple, Practical, and Common - 33483 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: 28
  • Position: #4514 / 7384
  • Number of attempts: 3
Just the middle - 11380 entries

Delete the instructions at the top and bottom.

  • Best score: 7
  • Best player score: 7
  • Position: #1502 / 4174
  • Number of attempts: 6
Line under headers - 2023 entries

Put a line under each header, and remove the other markdown formatting.

  • Best score: 24
  • Best player score: 39
  • Position: #433 / 498
  • Number of attempts: 1
I forgot quotes - 15946 entries

Oops.

  • Best score: 10
  • Best player score: 15
  • Position: #2378 / 4166
  • Number of attempts: 3
Ludovic Schwartz
Github:

entered into 32 challenges

contributed 0 challenges