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 4fe3d2c2f73248000100004b

Changing URL path in CSS

What's the quickest way to swap out all the URLs in a CSS file? Is it wasted keystrokes using look-behinds and look-aheads? (I'm sorry for the delete/report--I made a mistake with the last one requiring an ugly search for graphic to replace with images. I just intended this to be a simple search and replace that might possibly generate some macros or normals solutions that are quicker)

Start file
body {
	background: #d47300 url(graphics/noise.png);	
	font-family: 'Open Sans', sans-serif;
}


.background {
	background: url(../images/background_shadow.png) no-repeat top center;
	background-position: 50% 16%;	
}

.background_overlay {
	background: url(../images/background_overlay.png) no-repeat top center;
	padding: 0;
	margin:0;
}


.order {
	background: #ff9e00 url(graphics/order.png) repeat-x;
	height: 25px;
	display: inline-block;
	color: #d47300;
	line-height: 25px;
	font-weight: 700;
	font-size: 13px;
	font-weight: 800;
	padding: 0 10px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
	box-shadow: 0 0 0px 5px rgba(0,0,0,0.10);	
	margin-right: 20px;
	text-transform: uppercase;
	color: #825600;
	text-shadow: 0px 1px 0px rgba(255,255,255,0.50);
}

.sponsor:hover {
	background-position: 0px -25px;
}

.sponsor:active {
	background: #ff9e00 url(../images/sponsors/sponsorBlock.png) repeat-x;
	background-position: 0px -50px;
}


.telephone {
	background: #fff url(graphics/telephone.png) repeat-x;
	height: 25px;
	display: inline-block;
	color: #A65A01;
	line-height: 25px;
	font-weight: 700;
	font-size: 14px;
	padding: 0 10px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
	box-shadow: 0 0 0px 5px rgba(0,0,0,0.10);	
	margin-right: 20px;
	text-shadow: 0px 1px 0px rgba(255,255,255,0.50);
}


.social {
	background: #fff url(../social/telephone.png) repeat-x;
	display: inline-block;
	height: 25px;
	line-height: 25px;
	padding: 0 10px;
	color: #A65A01;
	font-weight: 700;
	font-size: 14px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
	box-shadow: 0 0 0px 5px rgba(0,0,0,0.10);	
	margin-right: 20px;
}
End file
body {
	background: #d47300 url(/wp-content/themes/black/graphics/noise.png);	
	font-family: 'Open Sans', sans-serif;
}


.background {
	background: url(/wp-content/themes/black/images/background_shadow.png) no-repeat top center;
	background-position: 50% 16%;	
}

.background_overlay {
	background: url(/wp-content/themes/black/images/background_overlay.png) no-repeat top center;
	padding: 0;
	margin:0;
}


.order {
	background: #ff9e00 url(/wp-content/themes/black/graphics/order.png) repeat-x;
	height: 25px;
	display: inline-block;
	color: #d47300;
	line-height: 25px;
	font-weight: 700;
	font-size: 13px;
	font-weight: 800;
	padding: 0 10px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
	box-shadow: 0 0 0px 5px rgba(0,0,0,0.10);	
	margin-right: 20px;
	text-transform: uppercase;
	color: #825600;
	text-shadow: 0px 1px 0px rgba(255,255,255,0.50);
}

.sponsor:hover {
	background-position: 0px -25px;
}

.sponsor:active {
	background: #ff9e00 url(/wp-content/themes/black/images/sponsors/sponsorBlock.png) repeat-x;
	background-position: 0px -50px;
}


.telephone {
	background: #fff url(/wp-content/themes/black/graphics/telephone.png) repeat-x;
	height: 25px;
	display: inline-block;
	color: #A65A01;
	line-height: 25px;
	font-weight: 700;
	font-size: 14px;
	padding: 0 10px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
	box-shadow: 0 0 0px 5px rgba(0,0,0,0.10);	
	margin-right: 20px;
	text-shadow: 0px 1px 0px rgba(255,255,255,0.50);
}


.social {
	background: #fff url(/wp-content/themes/black/social/telephone.png) repeat-x;
	display: inline-block;
	height: 25px;
	line-height: 25px;
	padding: 0 10px;
	color: #A65A01;
	font-weight: 700;
	font-size: 14px;
	-webkit-border-radius: 20px;
	-moz-border-radius: 20px;
	box-shadow: 0 0 0px 5px rgba(0,0,0,0.10);	
	margin-right: 20px;
}

View Diff

2c2
< 	background: #d47300 url(graphics/noise.png);	
---
> 	background: #d47300 url(/wp-content/themes/black/graphics/noise.png);	
8c8
< 	background: url(../images/background_shadow.png) no-repeat top center;
---
> 	background: url(/wp-content/themes/black/images/background_shadow.png) no-repeat top center;
13c13
< 	background: url(../images/background_overlay.png) no-repeat top center;
---
> 	background: url(/wp-content/themes/black/images/background_overlay.png) no-repeat top center;
20c20
< 	background: #ff9e00 url(graphics/order.png) repeat-x;
---
> 	background: #ff9e00 url(/wp-content/themes/black/graphics/order.png) repeat-x;
43c43
< 	background: #ff9e00 url(../images/sponsors/sponsorBlock.png) repeat-x;
---
> 	background: #ff9e00 url(/wp-content/themes/black/images/sponsors/sponsorBlock.png) repeat-x;
49c49
< 	background: #fff url(graphics/telephone.png) repeat-x;
---
> 	background: #fff url(/wp-content/themes/black/graphics/telephone.png) repeat-x;
66c66
< 	background: #fff url(../social/telephone.png) repeat-x;
---
> 	background: #fff url(/wp-content/themes/black/social/telephone.png) repeat-x;

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 44 remaining solutions by signing in and submitting your own entry
#45 Underhill Labs / underhilllabs - Score: 53 - 10/30/12 @ 05:40
:%s/l(/l(\/wp-content\/themes\/black\//<CR>:%s/\.\.\/<CR>ZZ

0 comments

#46 無ん垢の叫び / john_ababa - Score: 54 - 09/16/12 @ 07:00
:%s,(g,(/wp-content/themes/black/g<CR>:<C-P><BS><BS><Home><Right><Right><Right><Del><Del>\.\.<Right><Del><CR>ZZ

0 comments

#47 James / Dronak - Score: 54 - 09/19/14 @ 23:25
qq/url<CR>2wi/wp-content/themes/black/<Esc>q6@q:%s/\.\.\//<CR>ZZ

0 comments

#48 Chris LeBlanc / cleblanc87 - Score: 56 - 11/02/12 @ 15:43
:%s/l(/l(\/wp-content\/themes\/black\/<CR>:%s/\.\.\//<CR>:w<CR>ZZ

0 comments

#49 vgromainl / vgromainl - Score: 62 - 07/23/12 @ 22:02
:%s/<BS>;\.\./;;<CR>:g/url/norm f(aw<BS>/wp-content/the<BS>emes/black/<CR>:x<CR>

0 comments

#50 Samuel Ytterbrink / Neppord - Score: 66 - 06/23/12 @ 01:29
:%s%url(\(../\|\)\(.\{-}\))%url(/wp-content/themes/black/\2)%<CR>:wq<CR>

0 comments

#51 Dustin Willis Webber / Mephux - Score: 66 - 08/28/12 @ 16:21
:%s/\(url(\.\.\/\)\|url(/url(\/wp-content\/themes\/black\//g<CR><Esc>:wq<CR>

0 comments

#52 Ryan O'Connell / Salshammath - Score: 68 - 06/22/12 @ 02:05
:%s#\v(url\()@<=(\.\.)=/=(.{-})\)@=#/wp-content/themes/black/\3<CR>:<BS>ZZ

0 comments

#53 Veezus Kreist / veezus - Score: 69 - 07/17/12 @ 18:54
/pn<CR>qmF(a/wp-content/themes/black/<Esc>jqn@mn@@n@@n@@n@@n@@:%s/\.\.\//<CR>ZZ

0 comments

#54 Brett Lischalk / blischalk - Score: 342 - 07/14/12 @ 01:16
:%s/graphics//wp-content/themes/black/<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><Right>\<Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right>\<Right><Right><Right><Right><Right><Right><Right>\<Right><Right><Right><Right><Right><Right><Right>graphics/g<CR>:<Up><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left>\<CR>:<Up><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><Left><Left><Left><Left><BS><BS><BS><BS><BS><BS><BS><BS>\.\.\/social<Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><BS><BS><BS><BS><BS><BS><BS><BS>social<CR>:<Up><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><Left><Left><BS><BS><BS><BS><BS><BS>images<Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><BS><BS><BS><BS><BS><BS>images<CR>l<Esc><Esc>:wq<CR>

0 comments

#55 Noel Alejandro / noelrock333 - Score: 435 - 06/22/12 @ 21:39
:$<BS>%S<BS>s,/<BS>l*<BS>(8<BS>[.](<BS>*,-<BS>l(wo<BS>p-wo<BS><BS>content.<BS>/themes.<BS>/black><BS><CR>>><BS><BS><<<BS><BS>ZZ<CR><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down><Down>u:%s.<BS>,8<BS>l(<Esc>[<Esc>:%s,l([./]*,<BS>.<BS>,l(con=<BS><BS><BS><BS>wp-content<Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Left><Right>/<Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right><Right>/thee<BS>mes.<BS>/black<Right><CR>jjjjjjjjjjjjjjjjjjjjj}{{{{{{{{{{{{}}}}}}}}}}u%:%s,usl<BS><BS>rl([]<Left>./<Right><Right>.<BS><Left><Left>.<Right><Right><Left><Left><BS><Right><Right><Right>><BS>*,<<BS>*<BS><<BS>url(/content<BS><BS><BS><BS><BS><BS><BS>wp/<BS>-co<BS><BS>content-<BS>.<BS>/themes-<BS>/black/<CR>kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk><Esc>:w<CR><Esc><C-W>q

0 comments

Created by: Salshammath

55 active golfers, 111 entries

Leaderboard (lowest score wins):
40
#1 - Urtica dioica / udioica

06/22/2012 at 02:32AM

40
#2 - Tim Chase / gumnos

06/22/2012 at 02:40AM

40
#3 - h_east (トロッコ6個) / h_east

06/22/2012 at 04:38AM

40
#4 - Conner McDaniel / connermcd

06/22/2012 at 05:24AM

40
#5 - Tibor Claassen / codebeige

06/22/2012 at 06:08AM

40
#6 - Justin Love / wondible

06/22/2012 at 02:23PM

40
#7 - Federico Galassi / federicogalassi

06/22/2012 at 05:41PM

40
#8 - John Whitley / johnwhitley

06/22/2012 at 07:40PM

40
#9 - proglottis / proglottis

06/23/2012 at 10:20AM

40
#10 - ☈king / SharpsawDotOrg

06/24/2012 at 04:04AM

40
#11 - Ricardo Mendes / locks

06/25/2012 at 06:30PM

40
#12 - mwatkward / AftrschoolSpe

06/27/2012 at 01:32PM

40
#13 - Kaleb Hornsby / thekaleb

07/15/2012 at 01:01AM

40
#14 - Daniel S / smatter0ne

07/15/2012 at 10:29PM

40
#15 - Sean Griffin / sgrif

08/13/2012 at 01:06AM

40
#16 - 刘玮 / lwjef

08/17/2012 at 01:41AM

40
#17 - Sune Simonsen / sunesimonsen

08/26/2012 at 09:31AM

40
#18 - mhb / mhbvim

09/24/2012 at 11:02AM

40
#19 - Édouard M'tou / DouardM

10/09/2012 at 09:41AM

40
#20 - John Braxler / braxler

08/12/2014 at 05:57PM

42
#21 - Kerson Hsiao / KersonHsiao

06/22/2012 at 06:37AM

42
#22 - Vitaly Kushner / vkushner

06/22/2012 at 11:22AM

42
#23 - Caleb McDaniel / wcaleb

07/26/2012 at 02:44AM

42
#24 - William Dunand / wdunand

08/03/2012 at 05:32AM

43
#25 - James Davis / tripvg

08/05/2012 at 03:50AM

43
#26 - Reed Riley / ReedRile

08/13/2012 at 06:27PM

43
#27 - Arne Ehrlich / typedlambda

09/05/2012 at 09:43PM

44
#28 - Pandae / psasqw

06/22/2012 at 09:22AM

44
#29 - Matt Walker / _walkermatt

07/18/2012 at 12:16PM

44
#30 - David Galeano / davidgaleano

07/19/2012 at 08:22PM

45
#31 - Øystein Walle / oysteinwalle

06/25/2012 at 08:35PM

45
#32 - Vasil Sakarov / vsakarov

06/26/2012 at 01:54PM

45
#33 - Glen / Glen_S

07/23/2012 at 06:06AM

45
#34 - Théophile Wallez / twallez

08/11/2012 at 05:24PM

45
#35 - Matthieu Crapet / mcr05

12/12/2014 at 11:34AM

46
#36 - Mahefa Randimbisoa / DotMG

07/04/2012 at 11:30AM

46
#37 - Domon / Domon

09/11/2012 at 10:16AM

47
#38 - Oliver Christ / 0liverChrist

11/04/2013 at 01:15PM

48
#39 - Joonas Pihlajamaa / jokkebk

03/16/2014 at 06:52PM

49
#40 - Lajos Koszti / Ajnasz

06/23/2012 at 01:27PM

49
#41 - Martin Petrov / mgpetrov

08/23/2012 at 12:53PM

50
#42 - Michael Limiero / michaellimiero

08/13/2012 at 09:52PM

50
#43 - S. Brent Faulkner / sbfaulkner

09/14/2012 at 04:39PM

53
#44 - Christopher Green / cg433n

07/06/2012 at 01:06PM

53
#45 - Underhill Labs / underhilllabs

10/30/2012 at 05:40AM

54
#46 - 無ん垢の叫び / john_ababa

09/16/2012 at 07:00AM

54
#47 - James / Dronak

09/19/2014 at 11:25PM

56
#48 - Chris LeBlanc / cleblanc87

11/02/2012 at 03:43PM

62
#49 - vgromainl / vgromainl

07/23/2012 at 10:02PM

66
#50 - Samuel Ytterbrink / Neppord

06/23/2012 at 01:29AM

66
#51 - Dustin Willis Webber / Mephux

08/28/2012 at 04:21PM

68
#52 - Ryan O'Connell / Salshammath

06/22/2012 at 02:05AM

69
#53 - Veezus Kreist / veezus

07/17/2012 at 06:54PM

342
#54 - Brett Lischalk / blischalk

07/14/2012 at 01:16AM

435
#55 - Noel Alejandro / noelrock333

06/22/2012 at 09:39PM