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

Insert column data on Confluence-style table - 442 entries

Add ip addresses into new "IP" column based on the last digits from the "Server" column

  • Best score: 33
  • Best player score: 41
  • Position: #36 / 105
  • Number of attempts: 7
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: 16
  • Position: #115 / 523
  • Number of attempts: 8
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: 55
  • Position: #46 / 171
  • Number of attempts: 10
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: 26
  • Position: #102 / 334
  • Number of attempts: 8
Changing around text with citations - 324 entries

Based off of something I saw on reddit

  • Best score: 28
  • Best player score: 39
  • Position: #49 / 90
  • Number of attempts: 5
2 quick changes and a numbered list - 615 entries

The ascii will not be lost, but rather numbered in 4 digit blocks with leading zeros.

  • Best score: 37
  • Best player score: 59
  • Position: #107 / 148
  • Number of attempts: 1
Fix the shell script! - 2431 entries

Fix the shell script with the fewest keystrokes!

  • Best score: 26
  • Best player score: 27
  • Position: #98 / 569
  • Number of attempts: 10
Java to JavaScript - 267 entries

Let convert some simple Java file to JavaScript!

  • Best score: 59
  • Best player score: 138
  • Position: #65 / 72
  • Number of attempts: 1
Wikitext headings to markdown - 985 entries

Convert the wikitext headings to markdown.

  • Best score: 20
  • Best player score: 32
  • Position: #146 / 207
  • Number of attempts: 2
Lowercase first characters - 484 entries

This is the (abridged) input for Day 3 in Advent of Code 2019. The output is a format more suitable for Prolog programming: the two lines of input become two lists of pairs, joined together in a wires functor.

  • Best score: 33
  • Best player score: 33
  • Position: #30 / 181
  • Number of attempts: 8
Migrated to Postgres! - 324 entries

Celebration completion of this project. https://github.com/igrigorik/vimgolf/pull/322

  • Best score: 26
  • Best player score: 30
  • Position: #85 / 126
  • Number of attempts: 1
Generate a very basic Python constructor - 315 entries

I actually needed to do this myself, so I look forward to learning how.

  • Best score: 38
  • Best player score: 40
  • Position: #28 / 97
  • Number of attempts: 1
Python dataclasses - 1121 entries

Simple challenge to extract fields from a Python class

  • Best score: 19
  • Best player score: 30
  • Position: #188 / 281
  • Number of attempts: 5
Modernise code - 1368 entries

Modernise and clean up some C++ code.

  • Best score: 34
  • Best player score: 35
  • Position: #96 / 316
  • Number of attempts: 5
Easy modification of ssh config - 348 entries

Just add another alias to each worker

  • Best score: 24
  • Best player score: 33
  • Position: #75 / 108
  • Number of attempts: 4
ssh config skills - 250 entries

Parse output from `kuebctl get no -o wide` into an .ssh/config file!

  • Best score: 41
  • Best player score: 48
  • Position: #28 / 64
  • Number of attempts: 4
Python: Def to Lambda - 441 entries

LAMBDA!!!

  • Best score: 19
  • Best player score: 19
  • Position: #83 / 154
  • Number of attempts: 2
Satisfy the go linter - 2360 entries

You just came up with this briliant go vars package. But dang, you forgot to add comments to the exported variables. Can you add a comment over each variable with a TODO-placeholder?

  • Best score: 20
  • Best player score: 23
  • Position: #228 / 465
  • Number of attempts: 2
Add quotes to ansible playbook - 946 entries

You created an ansible playbook, but forgot to add quotes. Can you fix it?

  • Best score: 8
  • Best player score: 10
  • Position: #248 / 302
  • Number of attempts: 3
Data reformat - 286 entries

Reformat this copy-paste data! #csv

  • Best score: 36
  • Best player score: 51
  • Position: #38 / 63
  • Number of attempts: 10
xrandr outputs and dashes - 671 entries

uh oh, different video drivers identify display outputs with more dashes. Quick, need to change this xrandr script!

  • Best score: 12
  • Best player score: 15
  • Position: #180 / 218
  • Number of attempts: 3
From a Thunderlink to a Markdown link - 757 entries

ThunderLinks are durable hyperlinks to specific email messages generated from Thunderbird in HTML format. Leverage the power of vim to make them suitable for a markdown-formatted file.

  • Best score: 18
  • Best player score: 21
  • Position: #100 / 168
  • Number of attempts: 5
Yo To Hello - 1127 entries

Simply Turn Yo To Hello

  • Best score: 10
  • Best player score: 10
  • Position: #375 / 522
  • Number of attempts: 1
C# function to F# - 26 entries

Converting from C# to F# is not hard, but requires some manual labor. Here you should convert a C# function using a C# class to a F# function using a C# class.

  • Best score: 101
  • Best player score: 110
  • Position: #5 / 10
  • Number of attempts: 9
Get mail address from outlook format - 642 entries

Create a mail list space separated of mail list formatted by outlook

  • Best score: 15
  • Best player score: 16
  • Position: #125 / 202
  • Number of attempts: 5
Add string initializers to an enum - 866 entries

Change Typescript enum so that it has string initializers.

  • Best score: 21
  • Best player score: 23
  • Position: #121 / 256
  • Number of attempts: 5
remove lines containing the word "reader" - 3556 entries

easy stuff

  • Best score: 9
  • Best player score: 10
  • Position: #846 / 1151
  • Number of attempts: 3
Com(m)a Trouble - 3711 entries

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

  • Best score: 12
  • Best player score: 23
  • Position: #658 / 839
  • Number of attempts: 2
Extract wireshark capture filter - 203 entries

Extract wireshark capture filter from IP plan

  • Best score: 25
  • Best player score: 27
  • Position: #39 / 69
  • Number of attempts: 2
html paragraph to table - 601 entries

reformat html paragraph to table

  • Best score: 48
  • Best player score: 58
  • Position: #68 / 125
  • Number of attempts: 4
Preferably without multi-cursor plugin - 539 entries

Originally asked as question on reddit by kpthunder: https://www.reddit.com/r/vim/comments/9fvsro/what_is_the_most_efficient_way_to_go_about/

  • Best score: 30
  • Best player score: 34
  • Position: #59 / 128
  • Number of attempts: 3
Basic renumbering - 5605 entries

Renumbering Basic.

  • Best score: 11
  • Best player score: 23
  • Position: #1074 / 1260
  • Number of attempts: 4
Change attribute to getter - 134 entries

Wrap attributes with a getter method.

  • Best score: 24
  • Best player score: 24
  • Position: #30 / 58
  • Number of attempts: 5
Python challenge - 148 entries

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

  • Best score: 31
  • Best player score: 33
  • Position: #15 / 45
  • Number of attempts: 2
change parenthesis - 287 entries

change the pair of braces into a pair of parentheses

  • Best score: 9
  • Best player score: 10
  • Position: #145 / 160
  • Number of attempts: 3
move titles next to url, in quotes - 510 entries

had trouble with something similar

  • Best score: 19
  • Best player score: 24
  • Position: #116 / 137
  • Number of attempts: 1
convert yml into java pojo field - 837 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: 31
  • Position: #147 / 225
  • Number of attempts: 2
Collect List - 4267 entries

Convert to comma separated list.

  • Best score: 12
  • Best player score: 13
  • Position: #624 / 1188
  • Number of attempts: 4
Condensed Cases - 794 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.

  • Best score: 12
  • Best player score: 14
  • Position: #147 / 244
  • Number of attempts: 2
-a-b-c- - 3183 entries

Put hyphens everywhere.

  • Best score: 13
  • Best player score: 16
  • Position: #873 / 1132
  • Number of attempts: 2
Readable Rubyhash - 245 entries

Rubyists talk about being cutting edge but how many are using 1.9 in production? Time to convert those verbose 1.8 hashes in to symbolic, succinct 1.9 beauties!

  • Best score: 23
  • Best player score: 35
  • Position: #79 / 93
  • Number of attempts: 2
Switch function arguments - 2085 entries

How to switch two arguments of a function.

  • Best score: 11
  • Best player score: 13
  • Position: #420 / 653
  • Number of attempts: 3
The Cake is a Lie - 1301 entries

Correct the capitalization of each word

  • Best score: 9
  • Best player score: 16
  • Position: #502 / 517
  • Number of attempts: 3
0xf00ff00f
Twitter:

old guy | mid software engineer | interests: C++, graphics programming, pull-ups, running, science fiction, city pop, 日本語(まだまだ初心者ですけど)

entered into 43 challenges

contributed 0 challenges