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 by @Sloan-Yang:

Unlock 27 remaining solutions by signing in and submitting your own entry
Created by: @maharba6

277 active golfers, 1212 entries

Solutions by @Sloan-Yang:
24
#6 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 02:22PM

27
#>16 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 02:15PM

31
#>20 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 02:04PM

35
#>22 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 01:57PM

36
#>25 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 01:54PM

37
#>27 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 01:18PM

38
#>38 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 01:09PM

40
#>44 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 01:06PM

41
#>47 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:46PM

41
#>47 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 01:05PM

43
#>51 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:31PM

45
#>61 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:27PM

46
#>66 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:15PM

48
#>69 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:10PM

48
#>69 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:11PM

49
#>72 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:10PM

50
#>74 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:01PM

52
#>78 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 11:58AM

55
#>84 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 11:36AM

56
#>87 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 11:52AM

58
#>91 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 11:25AM

59
#>94 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 11:08AM

60
#>98 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 10:56AM

73
#>130 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 12:09PM

77
#>141 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 10:32AM

104
#>208 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 10:37AM

117
#>231 - Gatsby76(Sloan Yang) / @Sloan-Yang

05/13/2025 at 10:17AM