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 9v0067a47b9200000000069f

Reordering properties

Arrange the CSS lines for the #topbar selector based on their complete line length, from shortest to longest.

Start file
#topbar {
  background-image: url("images/abc.png");
  background-position: 12px 13px;
  font-size: 1px;
  left: 36px;
  margin-top: 10px;
  position: relative;
  top: 23px;
  vertical-align: middle;
  width: 200px;
}

#topbar .logo {
  top: 50%;
  position: absolute;
  left: 20px;
  transform: translateY(-50%);
  font-size: 28px;
  font-weight: bold;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 1px;
}
End file
#topbar {
  top: 23px;
  left: 36px;
  width: 200px;
  font-size: 1px;
  margin-top: 10px;
  position: relative;
  vertical-align: middle;
  background-position: 12px 13px;
  background-image: url("images/abc.png");
}

#topbar .logo {
  top: 50%;
  left: 20px;
  color: #fff;
  font-size: 28px;
  font-weight: bold;
  position: absolute;
  letter-spacing: 1px;
  text-transform: uppercase;
  transform: translateY(-50%);
}

View Diff

2,4c2
<   background-image: url("images/abc.png");
<   background-position: 12px 13px;
<   font-size: 1px;
---
>   top: 23px;
5a4,5
>   width: 200px;
>   font-size: 1px;
8d7
<   top: 23px;
10c9,10
<   width: 200px;
---
>   background-position: 12px 13px;
>   background-image: url("images/abc.png");
15d14
<   position: absolute;
17c16
<   transform: translateY(-50%);
---
>   color: #fff;
20,21c19
<   color: #fff;
<   text-transform: uppercase;
---
>   position: absolute;
22a21,22
>   text-transform: uppercase;
>   transform: translateY(-50%);

Solutions

The best way to learn is to practice. Below, you will find some of the solutions other golfers have entered. To unlock higher ranked solutions, submit your own entry which does as well or better than the solutions you can currently see - climb the ladder!

Check out these helpful resources to improve your Vim skills... Game on.

Unlock 268 remaining solutions by signing in and submitting your own entry
#269 hartun9 / @hartun9 - Score: 284 - 10/03/25 @ 05:35
<Esc>jjjjjjjddkkkkkkpkddjjjjjjjjjjjjjjjjjjj%p<50-53><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><0xe3><0x81><0xa3><Esc>[201~<BS><BS><BS><BS><BS><BS><BS><BS><BS><BS><Esc>u<Esc>kkkkkkkkkkkkkkkkkddkkkpjjjjjjjkddkkkkkkpjjddkkpjjddkkpjjddkpddkkpjjjjjjjjjjjjjjjyVykkkkkkkkkkkkkkpjddkkkpjjjjjjjjddkkpjjjjjddkkkkkpjjjddkkkpjjjddkkkpjjjjddkkkpjkjjjddkkddjkp<Esc>:wq<CR>

0 comments


Created by: @maharba6

269 active golfers, 1136 entries

Leaderboard (lowest score wins):
38
#31 - Joe Reddington / @joereddington

02/24/2025 at 08:23PM

38
#32 - Arnold Samuel Chan / @arnoldschan

03/27/2025 at 09:45AM

38
#33 - SpiridonDumitru / @SpiridonDumitru

04/01/2025 at 09:55AM

38
#34 - quadam / @quadam

04/07/2025 at 03:44PM

38
#35 - Dmitrii / @tdragon

04/13/2025 at 11:33AM

38
#36 - Lars van Dartel / @LarsvanDartel

05/07/2025 at 10:51PM

39
#37 - “Smylers” / @Smylers2

02/07/2025 at 02:39PM

39
#38 - MatFriend / @MatFriend

03/25/2025 at 03:31AM

39
#39 - Nico Ambrosini / @nambrosini

03/27/2025 at 09:59PM

39
#40 - Hessesian / @Hessesian

05/26/2025 at 08:48PM

39
#41 - tsui0 / @tsui0

06/19/2025 at 12:15AM

39
#42 - Martin Georgiev / @martician1

12/20/2025 at 06:25PM

40
#43 - JoshHughes156 / @JoshHughes156

09/02/2025 at 02:13PM

40
#44 - Jan Tesař / @tesar-tech

12/02/2025 at 05:32PM

41
#45 - Luke Korn / @LukeKorn

04/19/2025 at 05:32PM

42
#46 - Aubrey Clark / @ketexon

02/19/2026 at 12:00AM

43
#47 - Sebastian Caicedo / @jsebdev

03/29/2025 at 07:39PM

43
#48 - Joel Eriksson / @OwariDa

04/07/2025 at 05:33AM

43
#49 - Michael Cuffaro / @maiku1008

04/27/2025 at 03:41PM

43
#50 - JustAnAverageGuy / @JustAnAverageGuy

05/14/2025 at 01:19PM

43
#51 - dnzc / @dnzc

08/29/2025 at 11:42PM

43
#52 - constap / @constap

09/30/2025 at 01:23AM

43
#53 - Caleb Abrams / @kingcabrams

01/06/2026 at 09:44PM

44
#54 - EMtLoD / @EnderMasterTheOverlordOfCode

04/16/2025 at 10:17AM

44
#55 - Charles Beauville / @charlesbvll

04/19/2025 at 10:38AM

44
#56 - Frank Benoit / @frankb_stgt

05/22/2025 at 08:06PM

44
#57 - yaskur0 / @yaskur0

11/07/2025 at 04:36AM

44
#58 - kloir-z / @kloir-z

01/18/2026 at 08:23AM

45
#59 - bothyhead / @bothyhead

05/01/2025 at 10:05PM

45
#60 - kyle tilman / @ktilcu

05/14/2025 at 08:55PM