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 5bbb82f969a25f0009541350

Applying same text modification in several lines

Remove identical text at the beginning of several lines and the closing parenthesis.

Start file
Assert.ThrowsAsync<Exception>(() => _auction.StartSellingItem());
Assert.ThrowsAsync<Exception>(() => _application.StartBiddingIn(_auction));
Assert.ThrowsAsync<Exception>(() => _auction.HasReceivedJoinRequestFromSniper());
Assert.ThrowsAsync<Exception>(() => _auction.AnnounceClosed());
Assert.ThrowsAsync<Exception>(() => _application.ShowsSniperHasLostAuction());
End file
_auction.StartSellingItem();
_application.StartBiddingIn(_auction);
_auction.HasReceivedJoinRequestFromSniper();
_auction.AnnounceClosed();
_application.ShowsSniperHasLostAuction();

View Diff

1,5c1,5
< Assert.ThrowsAsync<Exception>(() => _auction.StartSellingItem());
< Assert.ThrowsAsync<Exception>(() => _application.StartBiddingIn(_auction));
< Assert.ThrowsAsync<Exception>(() => _auction.HasReceivedJoinRequestFromSniper());
< Assert.ThrowsAsync<Exception>(() => _auction.AnnounceClosed());
< Assert.ThrowsAsync<Exception>(() => _application.ShowsSniperHasLostAuction());
\ No newline at end of file
---
> _auction.StartSellingItem();
> _application.StartBiddingIn(_auction);
> _auction.HasReceivedJoinRequestFromSniper();
> _auction.AnnounceClosed();
> _application.ShowsSniperHasLostAuction();
\ No newline at end of file

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 581 remaining solutions by signing in and submitting your own entry
#582 /home/ck / @_CarlKenny - Score: 70 - 11/12/18 @ 01:34
dF_<Esc>jkkdf_<Esc>j.j.j.j.<C-V>kkkkI_<Esc>jjkkdf_f)<Esc>lxjwwwblxjwwbllxjhxjwllx<Esc>;:;x<BS><BS>x<CR>

0 comments


Created by: @alvesmarcell

582 active golfers, 2040 entries

Leaderboard (lowest score wins):
16
#421 - Simon Wilkinson / @simondwilkinson

08/23/2019 at 09:32PM

16
#422 - José / @AngelGaldamez

08/26/2019 at 02:23AM

16
#423 - Maxime Turquetil / @maturquetil

08/30/2019 at 10:11AM

16
#424 - Ariel Miculas / @ArielMiculas

09/18/2019 at 04:50PM

16
#425 - phe / @phelipetls

09/22/2019 at 02:20PM

16
#426 - Benjamin Pelletier / @benjipelletier

09/25/2019 at 08:30PM

16
#427 - Soptik / @Soptik3

10/01/2019 at 06:58PM

16
#428 - tuck cursed on rerB / @19emtuck

10/13/2019 at 05:06PM

16
#429 - roemermeier / @roemermeier

10/18/2019 at 04:48PM

16
#430 - Cardboard Cat / @CardboardCatMTG

10/24/2019 at 03:13AM

16
#431 - 0xNinja / @0x_Ninja

10/25/2019 at 08:24AM

16
#432 - Jason Chen / @chezbgone

10/27/2019 at 08:53PM

16
#433 - GrimmT / @GrimmT10

11/01/2019 at 06:31PM

16
#434 - Kevin Yokley / @kyokley19

11/03/2019 at 07:09PM

16
#435 - Nicolas Pagny / @NicolasPagny

12/03/2019 at 04:28PM

17
#436 - Yannick / @Malnoc

10/09/2018 at 01:51PM

17
#437 - alexche8 / @alexche_8

10/23/2018 at 11:55AM

17
#438 - ✖❎✖𝔩'𝔒𝔩𝔦𝔳𝔢✖❎✖ / @olivschwab

10/26/2018 at 01:33PM

17
#439 - bkdir / @Burak_Dir

10/26/2018 at 09:57PM

17
#440 - Tom Smeding / @TomSmeding

11/05/2018 at 10:17PM

17
#441 - Sören Schellhoff / @Jackokomm

11/17/2018 at 05:31PM

17
#442 - MEschenbacher / @eschenbacher_m

11/29/2018 at 01:45PM

17
#443 - Vending Machine / @storyn26383

12/16/2018 at 06:54AM

17
#444 - Eluded7 / @Eluded71

12/19/2018 at 05:41PM

17
#445 -  Martijn Engler / @MartijnEngler

12/31/2018 at 08:03PM

17
#446 - Brome / @Brome20887421

01/04/2019 at 06:38PM

17
#447 - wrglprmft / @wrglprmft

01/19/2019 at 08:44PM

17
#448 - tenteke / @kuskus3

01/21/2019 at 03:15PM

17
#449 - Chris AtLee / @chrisatlee

03/01/2019 at 09:59PM

17
#450 - Saphire Lattice / @SaphireLattice

03/06/2019 at 11:50AM