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 9v00672c1db90000000005ba

Fix the git merge conflicts

Solve the merge conflicts in the Python file

Start file
<<<<<<< HEAD
def calculate_total(items):
    """Calculate total price of items with 10% discount"""
    total = sum(item['price'] for item in items)
    return total * 0.9  # Apply 10% discount
=======
def calculate_total(items):
    """Calculate total price of items with tax"""
    total = sum(item['price'] for item in items)
    return total * 1.15  # Apply 15% tax
>>>>>>> feature/add-tax

def format_currency(amount):
<<<<<<< HEAD
    """Format amount as USD"""
    return f"${amount:.2f}"
=======
    """Format amount as EUR"""
    return f"€{amount:.2f}"
>>>>>>> feature/currency-update

def process_order(items):
    total = calculate_total(items)
<<<<<<< HEAD
    return {
        'status': 'success',
        'total': format_currency(total),
        'items_count': len(items)
    }
=======
    shipping = 5.99 if total < 50 else 0
    return {
        'status': 'processed',
        'total': format_currency(total + shipping),
        'shipping': shipping
    }
>>>>>>> feature/shipping
End file
def calculate_total(items):
    """Calculate total price of items with tax"""
    total = sum(item['price'] for item in items)
    total = total * 0.9  # Apply 10% discount
    return total * 1.15  # Apply 15% tax

def format_currency(amount):
    """Format amount as EUR"""
    return f"€{amount:.2f}"

def process_order(items):
    total = calculate_total(items)
    shipping = 5.99 if total < 50 else 0
    return {
        'status': 'processed',
        'total': format_currency(total + shipping),
        'items_count': len(items),
        'shipping': shipping
    }

View Diff

1d0
< <<<<<<< HEAD
3,7d1
<     """Calculate total price of items with 10% discount"""
<     total = sum(item['price'] for item in items)
<     return total * 0.9  # Apply 10% discount
< =======
< def calculate_total(items):
9a4
>     total = total * 0.9  # Apply 10% discount
11d5
< >>>>>>> feature/add-tax
14,17d7
< <<<<<<< HEAD
<     """Format amount as USD"""
<     return f"${amount:.2f}"
< =======
20d9
< >>>>>>> feature/currency-update
24,30d12
< <<<<<<< HEAD
<     return {
<         'status': 'success',
<         'total': format_currency(total),
<         'items_count': len(items)
<     }
< =======
34a17
>         'items_count': len(items),
37d19
< >>>>>>> feature/shipping

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 95 remaining solutions by signing in and submitting your own entry
#96 Badita Marin-Georgian / @GeorgianBadita - Score: 765 - 11/19/24 @ 22:27
d6ji<Esc>ud5jkjjjjddjd:10<CR>ujddddddddkkjjjjddjjjddddddddddddddjjjjjjddjkkkkkkkkkkkkkOtotal = total )<BS>* 0.9 # Plly<BS><BS><BS><BS>Apply 10% dic<BS>scount<Esc>i<Esc>hhhhhhhhhhhhhhhhhhi<BS>  <Esc>;w<CR>Gfgg<Esc>ggdG<50-53>def calculate_total(items):<CR>    """Calculate total price of items with tax"""<CR>    total = sum(item['price'] for item in items)<CR>    total = total * 0.9  # Apply 10% discount<CR>    return total * 1.15  # Apply 15% tax<CR><CR>def format_currency(amount):<CR>    """Format amount as EUR"""<CR>    return f"<0xe2><0x82><0xac>{amount:.2f}"<CR><CR>def process_order(items):<CR>    total = calculate_total(items)<CR>    shipping = 5.99 if total < 50 else 0<CR>    return {<CR>        'status': 'processed',<CR>        'total': format_currency(total + shipping),<CR>        'items_count': len(items),<CR>        'shipping': shipping<CR>    }<Esc>[201~<Esc>;<Esc>l<Esc>;<Esc><Esc>;:w<CR>:q<CR>

0 comments


Created by: @pacuna

96 active golfers, 330 entries

Leaderboard (lowest score wins):
51
#31 - iantalks / @iantalks

11/28/2024 at 04:46PM

52
#32 - Bthxtly / @Bthxtly

06/23/2025 at 11:27AM

53
#33 - Goonoo Kim / @goonookim

11/14/2024 at 06:33AM

53
#34 - Fredrik Robertsen / @fredrikr79

11/15/2024 at 02:43PM

53
#35 - lassion / @mutilator630

01/15/2026 at 05:42PM

53
#36 - Massimo Pavoni / @massimopavoni

04/08/2026 at 07:33AM

54
#37 - Siarhei Akhramenia / @dbzix

04/20/2025 at 03:06AM

54
#38 - abgalphbetz / @abgalphabetz

04/21/2025 at 02:05PM

54
#39 - Damien Baldy / @dbaldy

05/19/2025 at 12:25PM

54
#40 - Frank Benoit / @frankb_stgt

05/24/2025 at 06:35AM

55
#41 - Michael Cuffaro / @maiku1008

11/09/2024 at 08:09PM

55
#42 - Janusz Spatz / @janusz-anue

03/14/2025 at 09:44PM

55
#43 - Rafe Murray / @rafe-murray

01/30/2026 at 08:49AM

57
#44 - thedvd98 / @thedvd98

11/09/2024 at 01:21PM

57
#45 - Fionn Fitzmaurice / @fionn

12/25/2024 at 03:09PM

57
#46 - Ben / @meyerben

01/14/2025 at 04:39AM

57
#47 - Ashwin Kumar / @MrHaikuSwan

03/21/2026 at 09:18PM

58
#48 - Pablo Acuna / @pacuna

11/07/2024 at 01:58AM

58
#49 - Nikita Dobrynin / @girvel

12/23/2024 at 09:15PM

58
#50 - Eng. José Esteves / @JGEsteves89

06/21/2025 at 07:36AM

58
#51 - Jorge Dias / @marori

10/11/2025 at 02:42AM

58
#52 - se / @sairutra

12/02/2025 at 11:22AM

58
#53 - Laubobboy / @Laubobboy

12/20/2025 at 06:53AM

59
#54 - Matthew Berthoud / @Matthew-Berthoud

01/07/2025 at 10:20AM

59
#55 - Jean-Valery / @Jvaxx

03/23/2026 at 05:26PM

60
#56 - Nicolas Lunde / @nlund3

01/30/2025 at 11:49PM

60
#57 - Oliver Green / @olijg

03/14/2025 at 03:22PM

60
#58 - Tyler Patton / @jamestylerpatton

11/24/2025 at 07:26PM

60
#59 - Shreyas Ravi / @shreyasravi320

02/10/2026 at 09:17PM

60
#60 - Nıklas Rıeken / @ttnick

04/09/2026 at 02:06PM