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 by @ChrisBudetti:

Unlock 7 remaining solutions by signing in and submitting your own entry
Created by: @alvesmarcell

780 active golfers, 2623 entries

Solutions by @ChrisBudetti:
13
#12 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:46AM

14
#>244 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:38AM

15
#>445 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:37AM

16
#>491 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:35AM

18
#>594 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:32AM

20
#>640 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:26AM

25
#>696 - Chris Budetti / @ChrisBudetti

10/14/2018 at 10:24AM