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

Rearrange array to one line

Rearrange the array content on only one line, and remove trailing commas

Start file
const data = [
  {
    goal: 400,
  },
  {
    goal: 300,
  },
  {
    goal: 200,
  },
  {
    goal: 300,
  },
  {
    goal: 200,
  },
  {
    goal: 278,
  },
  {
    goal: 189,
  },
  {
    goal: 239,
  },
  {
    goal: 300,
  },
  {
    goal: 200,
  },
  {
    goal: 278,
  },
  {
    goal: 189,
  },
  {
    goal: 349,
  },
]
End file
const data = [
  { goal: 400 }, { goal: 300 }, { goal: 200 }, { goal: 300 }, { goal: 200 }, { goal: 278 }, { goal: 189 }, { goal: 239 }, { goal: 300 }, { goal: 200 }, { goal: 278 }, { goal: 189 }, { goal: 349 }
]

View Diff

2,40c2
<   {
<     goal: 400,
<   },
<   {
<     goal: 300,
<   },
<   {
<     goal: 200,
<   },
<   {
<     goal: 300,
<   },
<   {
<     goal: 200,
<   },
<   {
<     goal: 278,
<   },
<   {
<     goal: 189,
<   },
<   {
<     goal: 239,
<   },
<   {
<     goal: 300,
<   },
<   {
<     goal: 200,
<   },
<   {
<     goal: 278,
<   },
<   {
<     goal: 189,
<   },
<   {
<     goal: 349,
<   },
---
>   { goal: 400 }, { goal: 300 }, { goal: 200 }, { goal: 300 }, { goal: 200 }, { goal: 278 }, { goal: 189 }, { goal: 239 }, { goal: 300 }, { goal: 200 }, { goal: 278 }, { goal: 189 }, { goal: 349 }

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 172 remaining solutions by signing in and submitting your own entry
#173 Driftingdrifting / @Driftingdrifting - Score: 232 - 07/16/24 @ 16:45
:%s/{\n^\w<Left><Left><Left>\<BS>\[<Right><Right><Right>]<Tab><BS>*\(\w)<BS><BS><BS>goal"<BS>: []<Left>0-9<Right>*\),\n.*/\1/g<CR>/{\n[]<Left>.<BS> <BS>^\w<Right>*<BS><BS><BS><BS>a-<BS><BS>g]*(^,)<Left><Left><Left><Left>\<Right><Right><Right>\<Right><BS><BS><BS><BS><BS><BS>\([^,]*\),\n.*/{ \1 },/g<Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><BS><CR><Esc>:%d<BS>s/<50-53>{\n[^g]*\([^,]*\),\n.*/{ \1 },/g <Esc>[201~<CR>2GV14<CR><Up>J$x:wq<CR>

0 comments


Created by: @alexandregv

173 active golfers, 718 entries

Leaderboard (lowest score wins):
35
#151 - Daniel Apt / @DanielApt

08/09/2024 at 03:29PM

35
#152 - DarChan / @richvote

08/12/2024 at 12:29PM

39
#153 - PhinJ / @PhinJ

02/07/2025 at 06:57PM

50
#154 - Michael / @thscuriousquest

08/04/2024 at 06:08PM

50
#155 - Brian Curless / @bwcurless

02/12/2025 at 07:03PM

51
#156 - Karen Mkrtumyan / @KARM99

08/31/2024 at 04:59PM

52
#157 - Sam Zabaldo / @szabaldo

08/08/2024 at 02:50AM

52
#158 - HADIOUCHE Azouaou / @Thoro-las

04/05/2025 at 09:17PM

54
#159 - Th0ught09 / @Th0ught09

09/22/2024 at 10:08AM

56
#160 - Irakli Chkhetiaini / @chkhetiani

08/15/2024 at 02:26PM

57
#161 - Álvaro Silva / @ricostynha1

07/29/2024 at 09:35PM

63
#162 - CicadaCinema / @CicadaCinema

06/23/2025 at 05:16PM

69
#163 - Raphael Gaschignard / @rtpg

06/27/2025 at 01:09AM

71
#164 - Sylvain Dangin / @Sylvaner

08/03/2024 at 09:36PM

72
#165 - aeha / @aeha_official

08/05/2024 at 11:41AM

79
#166 - SRINIVASU SALADI / @SRINIVASUS22587

04/01/2025 at 04:10AM

80
#167 - LukasOates / @LukasOates

07/18/2024 at 11:53PM

83
#168 - John Howe / @jhowe-dev

02/07/2025 at 06:49PM

108
#169 - PeytonSch / @PeytonSch

05/23/2025 at 02:30PM

124
#170 - Etrama / @Etrama

02/23/2025 at 04:58AM

137
#171 - schlottmancole / @schlottmancole

08/04/2024 at 04:15PM

152
#172 - Fredrik Lundström / @Flundrahn

07/31/2024 at 10:51PM

232
#173 - Driftingdrifting / @Driftingdrifting

07/16/2024 at 04:45PM