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 64 remaining solutions by signing in and submitting your own entry
#65 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

65 active golfers, 240 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

23
#7 - Laurens De la Marche / @LaurensDLM

10/19/2023 at 05:21PM

23
#8 - Berel94 / @Berel94

03/13/2024 at 10:10PM

23
#9 - Peppa Pig / @PeppaPigSg

06/29/2024 at 06:35AM

23
#10 - nickGPT / @nickandbro

08/28/2024 at 03:55AM

24
#11 - Urtica dioica / @udioica

09/03/2015 at 11:41PM

24
#12 - Jean George / @JeanGeo20504212

05/25/2022 at 04:18PM

24
#13 - Alex / @AlexanderHeatl2

07/07/2022 at 09:40PM

24
#14 - constap / @constap

05/13/2024 at 06:36PM

25
#15 - Mutter Mumble / @muttermumble

09/03/2015 at 08:48PM

25
#16 - Lifepillar / @lifepillar

09/03/2015 at 09:30PM

25
#17 - Petro Тrouq / @zulolosi

09/04/2015 at 03:03AM

25
#18 - João Carvalho / @joaoCarvas

09/04/2015 at 01:08PM

25
#19 - pftb12345 / @pftb12345

09/05/2015 at 03:10AM

25
#20 - JS / @jjohsan

09/05/2015 at 01:24PM

25
#21 - Bart / @oneofmanybarts

09/08/2015 at 02:27PM

25
#22 - T / @tea_sea

09/14/2015 at 03:23PM

25
#23 - Ben Vandervalk / @benvvalk

09/19/2015 at 02:50AM

25
#24 - Mikael Saltzman / @MikaelSaltzman

09/25/2015 at 04:05PM

25
#25 - Mike Adams / @davis_cromwell

09/27/2015 at 11:39PM

25
#26 - ojung / @oskrjung

10/05/2015 at 01:55AM

25
#27 - Robert Goeddel / @f0rdpr3fect

11/10/2015 at 08:27PM

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

03/13/2016 at 09:19PM

25
#29 - Aleksey Zhidkov / @AlexeyZhidkov

03/14/2016 at 05:33AM

25
#30 - Dimitar Dimitrov / @kurkale6ka

03/17/2016 at 03:14PM