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 55e814a35f5608403d000001

Vim's not included features

Filter not included (-) features in a hypothetical installation of vim.

Start file
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         -gettext         -mzscheme        +textobjects
-clientserver    -hangul_input    +netbeans_intg   +title
+clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   +perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      -sniff           -xsmp
+eval            +mouse_dec       +startuptime     -xterm_clipboard
+ex_extra        -mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
End file
-balloon_eval
-browse
-clientserver
-dnd
-ebcdic
-footer
-gettext
-hangul_input
-lua
-mouseshape
-mouse_gpm
-mouse_jsbterm
-mouse_sysmouse
-mzscheme
-python3
-sniff
-sun_workshop
-tag_any_white
-tcl
-toolbar
-X11
-xfontset
-xim
-xsmp
-xterm_clipboard
-xterm_save
-xpm

View Diff

1,28c1,27
< +acl             +farsi           +mouse_netterm   +syntax
< +arabic          +file_in_path    +mouse_sgr       +tag_binary
< +autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
< -balloon_eval    +float           +mouse_urxvt     -tag_any_white
< -browse          +folding         +mouse_xterm     -tcl
< ++builtin_terms  -footer          +multi_byte      +terminfo
< +byte_offset     +fork()          +multi_lang      +termresponse
< +cindent         -gettext         -mzscheme        +textobjects
< -clientserver    -hangul_input    +netbeans_intg   +title
< +clipboard       +iconv           +path_extra      -toolbar
< +cmdline_compl   +insert_expand   +perl            +user_commands
< +cmdline_hist    +jumplist        +persistent_undo +vertsplit
< +cmdline_info    +keymap          +postscript      +virtualedit
< +comments        +langmap         +printer         +visual
< +conceal         +libcall         +profile         +visualextra
< +cryptv          +linebreak       +python          +viminfo
< +cscope          +lispindent      -python3         +vreplace
< +cursorbind      +listcmds        +quickfix        +wildignore
< +cursorshape     +localmap        +reltime         +wildmenu
< +dialog_con      -lua             +rightleft       +windows
< +diff            +menu            +ruby            +writebackup
< +digraphs        +mksession       +scrollbind      -X11
< -dnd             +modify_fname    +signs           -xfontset
< -ebcdic          +mouse           +smartindent     -xim
< +emacs_tags      -mouseshape      -sniff           -xsmp
< +eval            +mouse_dec       +startuptime     -xterm_clipboard
< +ex_extra        -mouse_gpm       +statusline      -xterm_save
< +extra_search    -mouse_jsbterm   -sun_workshop    -xpm
---
> -balloon_eval
> -browse
> -clientserver
> -dnd
> -ebcdic
> -footer
> -gettext
> -hangul_input
> -lua
> -mouseshape
> -mouse_gpm
> -mouse_jsbterm
> -mouse_sysmouse
> -mzscheme
> -python3
> -sniff
> -sun_workshop
> -tag_any_white
> -tcl
> -toolbar
> -X11
> -xfontset
> -xim
> -xsmp
> -xterm_clipboard
> -xterm_save
> -xpm

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 53 remaining solutions by signing in and submitting your own entry
#54 Gurukandhamoorthi / @Gurukandhamoor1 - Score: 154 - 07/31/17 @ 14:57
W<C-V>GWWhxGo<Esc>pggW<C-V>28GWWhxGo<Esc>pggW<C-V>28GWW<Esc><Esc>kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk<End><Left><Left><Left><Left><Left><Left><C-V>28GWWWWWW<Esc><Esc>kkggW<C-V>28GEEEEEE<Esc>kkkggf+<C-V>28G$xGpuo<Esc>pgg:v/-/d<CR>HGgg:%s/ */<BS>$/g<BS>/g<CR>ZZ

0 comments


Created by: @pauloromeira

54 active golfers, 150 entries

Leaderboard (lowest score wins):
23
#1 - Jon Krause / @jkrause314

06/28/2016 at 09:09PM

23
#2 - Kerson Hsiao / @KersonHsiao

07/01/2016 at 12:04AM

23
#3 - Bill Ruddock / @biinari

10/25/2016 at 04:08PM

23
#4 - John Braxler / @braxler

11/23/2016 at 06:01PM

23
#5 - Turkey Man / @lvturkeyman

11/28/2017 at 01:12AM

23
#6 - DHM / @DHM29978992

05/21/2018 at 02:07AM

24
#7 - Urtica dioica / @udioica

09/03/2015 at 11:41PM

25
#8 - Mutter Mumble / @muttermumble

09/03/2015 at 08:48PM

25
#9 - Lifepillar / @lifepillar

09/03/2015 at 09:30PM

25
#10 - Petro Тrouq / @zulolosi

09/04/2015 at 03:03AM

25
#11 - João Carvalho / @joaoCarvas

09/04/2015 at 01:08PM

25
#12 - pftb12345 / @pftb12345

09/05/2015 at 03:10AM

25
#13 - JS / @jjohsan

09/05/2015 at 01:24PM

25
#14 - Bart / @oneofmanybarts

09/08/2015 at 02:27PM

25
#15 - Tom Cammann / @tea_sea

09/14/2015 at 03:23PM

25
#16 - Ben Vandervalk / @benvvalk

09/19/2015 at 02:50AM

25
#17 - Mikael Saltzman / @MikaelSaltzman

09/25/2015 at 04:05PM

25
#18 - Mike Adams / @davis_cromwell

09/27/2015 at 11:39PM

25
#19 - ojung / @oskrjung

10/05/2015 at 01:55AM

25
#20 - Robert Goeddel / @f0rdpr3fect

11/10/2015 at 08:27PM

25
#21 - Carlos A Henríquez Q / @lagunex

03/13/2016 at 09:19PM

25
#22 - Aleksey Zhidkov / @AlexeyZhidkov

03/14/2016 at 05:33AM

25
#23 - Dimitar Dimitrov / @kurkale6ka

03/17/2016 at 03:14PM

25
#24 - Tyler / @tylerbindon

06/30/2016 at 05:23AM

25
#25 - Kai Yuan / @kentyuan

06/30/2016 at 12:12PM

26
#26 - T A / @SirAviles

09/06/2015 at 08:53PM

28
#27 - Chenut Ludovic / @7Brwa7

04/06/2016 at 03:25PM

29
#28 - Tim Chase / @gumnos

09/03/2015 at 02:53PM

31
#29 - Matthieu Crapet / @mcr05

09/13/2015 at 09:03AM

32
#30 - Saki Gw / @Sakigw

02/02/2017 at 02:45AM