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 51a388ac06f7d20002000006

Change The Perspective

This is a go game recodes file(.sgf file, refer to http://www.red-bean.com/sgf/). It base on such a coordinate system: in vertical direction, is from top(farthest end) to bottom, mark as a,b,c,...,s(19*19 board); in horizontal direction, is from left to right, uses the same notations. For Example, the coordinate notation 'cq', is the position at the bottom-left corner(vertical coordinate first). The record is from one player's perspective. We need to change to another's, but we don't want to change coordinate system, let it keep top to bottom and left to right. so we have to change the coordinates, a <-> s, b <-> r,c <-> q, etc. the Position 'cq', as transformation, it will be 'qd'.

Start file
(
;GM[1]SZ[19]
;B[dp];W[pq];B[dd];W[pd];B[qo];W[pl];B[no];W[mq];B[qf];W[nc];B[pi];W[qe]
;B[pf];W[nl];B[lo];W[kp];B[ll];W[ko];B[ln];W[pj];B[oj];W[oi];B[nj];W[qi]
;B[ph];W[qj];B[ni];W[qh];B[oh];W[cj];B[lc];W[rf];B[rg];W[re];B[qg];W[mk]
;B[kj];W[rh];B[gq];W[op];B[pn];W[fc];B[cg];W[ic];B[cl];W[bn];B[co];W[cq]
;B[bo];W[eq];B[ep];W[fq];B[fp];W[gr];B[gp];W[hr];B[ch];W[ej];B[ck];W[eh]
;B[bj];W[ee];B[ed];W[fd];B[fe];W[ef];B[ge];W[gg];B[ie];W[db];B[cd];W[hi]
;B[ke];W[cc];B[fk];W[ji];B[ig];W[fj];B[hh];W[ih];B[hg];W[gh];B[jh];W[ii]
;B[ki];W[hf];B[if];W[he];B[hd];W[gf];B[id];W[gd];B[hc];W[qp];B[sg];W[qm]
;B[ro];W[kh];B[pb];W[ob];B[pc];W[od];B[rc];W[rd];B[mb];W[qc];B[jg];W[dq]
;B[rq];W[ip];B[ok];W[ol];B[sh];W[mm];B[rp];W[kk];B[kn];W[lk];B[io];W[oo]
;B[on];W[nn];B[np];W[oq]
)
End file
(
;GM[1]SZ[19]
;B[pd];W[dc];B[pp];W[dp];B[ce];W[dh];B[fe];W[gc];B[cn];W[fq];B[dk];W[co]
;B[dn];W[fh];B[he];W[id];B[hh];W[ie];B[hf];W[dj];B[ej];W[ek];B[fj];W[ck]
;B[dl];W[cj];B[fk];W[cl];B[el];W[qj];B[hq];W[bn];B[bm];W[bo];B[cm];W[gi]
;B[ij];W[bl];B[mc];W[ed];B[df];W[nq];B[qm];W[kq];B[qh];W[rf];B[qe];W[qc]
;B[re];W[oc];B[od];W[nc];B[nd];W[mb];B[md];W[lb];B[ql];W[oj];B[qi];W[ol]
;B[rj];W[oo];B[op];W[np];B[no];W[on];B[mo];W[mm];B[ko];W[pr];B[qp];W[lk]
;B[io];W[qq];B[ni];W[jk];B[km];W[nj];B[ll];W[kl];B[lm];W[ml];B[jl];W[kk]
;B[ik];W[ln];B[kn];W[lo];B[lp];W[mn];B[kp];W[mp];B[lq];W[cd];B[am];W[cg]
;B[be];W[il];B[dr];W[er];B[dq];W[ep];B[bq];W[bp];B[gr];W[cq];B[jm];W[pc]
;B[bc];W[kd];B[ei];W[eh];B[al];W[gg];B[bd];W[ii];B[if];W[hi];B[ke];W[ee]
;B[ef];W[ff];B[fd];W[ec]
)

View Diff

3,13c3,13
< ;B[dp];W[pq];B[dd];W[pd];B[qo];W[pl];B[no];W[mq];B[qf];W[nc];B[pi];W[qe]
< ;B[pf];W[nl];B[lo];W[kp];B[ll];W[ko];B[ln];W[pj];B[oj];W[oi];B[nj];W[qi]
< ;B[ph];W[qj];B[ni];W[qh];B[oh];W[cj];B[lc];W[rf];B[rg];W[re];B[qg];W[mk]
< ;B[kj];W[rh];B[gq];W[op];B[pn];W[fc];B[cg];W[ic];B[cl];W[bn];B[co];W[cq]
< ;B[bo];W[eq];B[ep];W[fq];B[fp];W[gr];B[gp];W[hr];B[ch];W[ej];B[ck];W[eh]
< ;B[bj];W[ee];B[ed];W[fd];B[fe];W[ef];B[ge];W[gg];B[ie];W[db];B[cd];W[hi]
< ;B[ke];W[cc];B[fk];W[ji];B[ig];W[fj];B[hh];W[ih];B[hg];W[gh];B[jh];W[ii]
< ;B[ki];W[hf];B[if];W[he];B[hd];W[gf];B[id];W[gd];B[hc];W[qp];B[sg];W[qm]
< ;B[ro];W[kh];B[pb];W[ob];B[pc];W[od];B[rc];W[rd];B[mb];W[qc];B[jg];W[dq]
< ;B[rq];W[ip];B[ok];W[ol];B[sh];W[mm];B[rp];W[kk];B[kn];W[lk];B[io];W[oo]
< ;B[on];W[nn];B[np];W[oq]
---
> ;B[pd];W[dc];B[pp];W[dp];B[ce];W[dh];B[fe];W[gc];B[cn];W[fq];B[dk];W[co]
> ;B[dn];W[fh];B[he];W[id];B[hh];W[ie];B[hf];W[dj];B[ej];W[ek];B[fj];W[ck]
> ;B[dl];W[cj];B[fk];W[cl];B[el];W[qj];B[hq];W[bn];B[bm];W[bo];B[cm];W[gi]
> ;B[ij];W[bl];B[mc];W[ed];B[df];W[nq];B[qm];W[kq];B[qh];W[rf];B[qe];W[qc]
> ;B[re];W[oc];B[od];W[nc];B[nd];W[mb];B[md];W[lb];B[ql];W[oj];B[qi];W[ol]
> ;B[rj];W[oo];B[op];W[np];B[no];W[on];B[mo];W[mm];B[ko];W[pr];B[qp];W[lk]
> ;B[io];W[qq];B[ni];W[jk];B[km];W[nj];B[ll];W[kl];B[lm];W[ml];B[jl];W[kk]
> ;B[ik];W[ln];B[kn];W[lo];B[lp];W[mn];B[kp];W[mp];B[lq];W[cd];B[am];W[cg]
> ;B[be];W[il];B[dr];W[er];B[dq];W[ep];B[bq];W[bp];B[gr];W[cq];B[jm];W[pc]
> ;B[bc];W[kd];B[ei];W[eh];B[al];W[gg];B[bd];W[ii];B[if];W[hi];B[ke];W[ee]
> ;B[ef];W[ff];B[fd];W[ec]

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 16 remaining solutions by signing in and submitting your own entry
#17 Brian Hall / _bruab_ - Score: 47 - 05/31/17 @ 13:12
:%s/\l/\=nr2char(212-char2nr(submatch(0)))/g<CR>ZZ

0 comments

#18 YamasakiKenta / ymknjugg - Score: 47 - 06/24/17 @ 08:17
:%s/\l/\=nr2char(212-char2nr(submatch(0)))/g<CR>ZZ

0 comments

#19 Vinicius Souza / vsouzas - Score: 49 - 05/30/13 @ 16:33
:%s/\l/\=nr2char(212-char2nr(submatch(0)))/g<CR>:wq<CR>

0 comments

#20 Karol Łukaszewicz / Karolukaszewicz - Score: 54 - 07/31/17 @ 13:57
:<50-53>%s/\l/\=nr2char(212-char2nr(submatch(0)))/g<Esc>[201~<CR>ZZ

0 comments

Created by: wushexu

20 active golfers, 31 entries

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

05/27/2013 at 07:13PM

33
#2 - John Braxler / braxler

10/17/2014 at 04:39PM

35
#3 - Petro Тrouq / zulolosi

05/30/2013 at 08:05PM

35
#4 - Smylers / Smylers2

02/12/2016 at 02:23PM

37
#5 - Kai Yuan / kentyuan

05/27/2013 at 07:57PM

37
#6 - ———đίxίє—flαтlίиє——— / _dixie_flatline

07/29/2013 at 04:34AM

37
#7 - M T / bahkyp

08/30/2016 at 03:36AM

45
#8 - Jon Krause / jkrause314

12/24/2015 at 05:11PM

47
#9 - Tim Chase / gumnos

05/27/2013 at 07:13PM

47
#10 - Tom User / kiryph

05/30/2013 at 01:03PM

47
#11 - mnx / mnxx

06/05/2013 at 01:59PM

47
#12 - James Davis / tripvg

06/28/2013 at 10:12PM

47
#13 - Joonas Pihlajamaa / jokkebk

02/07/2014 at 12:48PM

47
#14 - Phil Runninger / PhilRunninger

08/19/2014 at 02:57PM

47
#15 - Carlos López / morrizon

10/25/2014 at 06:04PM

47
#16 - pftb12345 / pftb12345

04/04/2015 at 02:06AM

47
#17 - Brian Hall / _bruab_

05/31/2017 at 01:12PM

47
#18 - YamasakiKenta / ymknjugg

06/24/2017 at 08:17AM

49
#19 - Vinicius Souza / vsouzas

05/30/2013 at 04:33PM

54
#20 - Karol Łukaszewicz / Karolukaszewicz

07/31/2017 at 01:57PM