28

I love Vim. I spend my whole life using it: At work I develop code with Vim, I edit config files with it, I write my emails with it. At home I write my todo lists and my buckets lists with it. On my free time I write a book in it. I go to meetups about Vim and I try to convince everyone I know to use it (Unfortunately my grandma doesn't agree that she should use it to write letters to her friends).

With all this love for our beloved editor I am facing a huge problem: as a normally constituted human I sometimes want to relax and have fun. Naturally I'd want to do that in our godly editor, but I don't know how I can do that. Of course I have spent hours customizing my color scheme and writing recursive macro that I watch for long time but after six or seven hours straight it is not that fun anymore.

So I'm calling to you fellow Vimmers: How can I have fun in Vim?

EDIT This post was obviously an April's fool (of course my grandma loves to use Vim). Thank you all for your answers and comments, some really cool ideas has been suggested!

5
  • 4
    Write a book of jokes, using vim!
    – loutre
    Apr 1, 2016 at 9:47
  • 7
    @loutre: A book of jokes about Vim? Like "Vi has two modes: one where it beeps whenever you hit a key, and one where it deletes all the work you've done." :-)
    – statox
    Apr 1, 2016 at 9:54
  • 3
    I have a lot of fun with Vim, simply by using it efficiently.
    – romainl
    Apr 1, 2016 at 10:01
  • 2
    I'm closing this question as off-topic because April fools is over. No more fun allowed now! :p Apr 3, 2016 at 2:34
  • 2
    @Carpetsmoker But... but.... but...... No more fun? :-(
    – wizzwizz4
    Apr 3, 2016 at 9:00

6 Answers 6

20

There's a lot of way to have fun in Vim: for example, one could install the vim-script nibble plugin (this one has a dependency which also must be installed).

Once the plugin is installed the command :Nibble will start a snake game in a new buffer. The snake can be controlled with hjkl and the game can be paused with space. With that it is possible to spend hours of fun in our beloved editor.

nibble for vim


Now if you get bored with the snake you can still play a good old tetris game with TeTrIs.vim.

This one has no dependencies and the game is started with Leaderte

Please admire how beautiful it is:

Tetris in vim


Finally, if you really are a hardcore gamer and still want some new experiences, you could try sokoban. This game asks for too much cerebral skill for me but I'm sure some geniuses will still enjoy it.


Edit As the question is now closed, I'll add the flappyvirb plugin suggested by @sp asic, which is actually much easier than the smartphone version:

Flappy bird on Vim

And the Matrix plugin suggested by @mMontu which will provide you hours of entertainment in front of an amazing matrix screensaver:

enter image description here


Edit 2 Because the fun never ends, here is another plugin for the retro gamers: rogue.vim as its name says it is a port of rogue in vim:

enter image description here

Explore a dungeon, fight monsters, win money: become a real Vim adventurer! The game seems to be really complete, the doc is huge and clear and a lot of commands are available. And like in every good rogue like, the dungeon is randomly generated on each new game.

6
  • 1
    reminded me of flappyvird - github.com/mattn/flappyvird-vim
    – Sundeep
    Apr 1, 2016 at 11:01
  • @spasic: I didn't know it but it totally fits the list!
    – statox
    Apr 1, 2016 at 12:04
  • 1
    you could also watch the whole world through the matrix plugin
    – mMontu
    Apr 1, 2016 at 13:37
  • @mMontu: unfortunately the plugin doesn't seems to work properly on my system and I don't have time to debug that but that seems like a cool plugin! :-)
    – statox
    Apr 2, 2016 at 21:39
  • The snake one would be great to get new users to develop muscle memory for the hjkl keys!
    – dbmrq
    May 20, 2016 at 9:14
12

Didn't notice VimGolf listed here, so thought I'd throw it out there:

VimGolf

It's a fun way to challenge yourself to do Vim things in fewer and fewer keystrokes. Apologies if you already knew of it.

6
7

Imagine a file format for another hobby you have, and write a Vim plugin for it, just for you.

For example, let's say you like to compose crosswords / puzzles. In this case, you could use/create a special file format, and complement it with a plugin that helps or automates certain operations, e.g. easy toggling of a black square, easy navigation from definition to word position in the puzzle, or automatic search in a specified dictionary for incomplete words, based on the current row/column cursor location. Stuff like that :)

(The idea comes from a Emacs book: "Writing GNU Emacs Extensions")

4
  • 6
    Your answer made me think that one could develop a plugin to help create and play regex crosswords like the ones on this site. The plugin could read a crossword and highlight the characters placed wrongly :-)
    – statox
    Apr 1, 2016 at 13:02
  • Yes - anything sufficiently interesting to make the effort worthy :)
    – VanLaser
    Apr 1, 2016 at 13:09
  • 1
    @statox, that is an awesome site, thank you for linking to it! :D
    – Wildcard
    Apr 2, 2016 at 0:43
  • 1
    @Wildcard Well you're welcome! A friend of mine showed it to me some days ago and I found the idea pretty cool!
    – statox
    Apr 2, 2016 at 21:40
7

Do you think you've mastered Vim? Do you know all the commands? Is using Vim getting boring and a banality? Are you longing for the days when discovering how to quit Vim was exciting and new?

Then level up your Vim to achieve the next level of Vim mastery! It's as simple as using :VimLevelUp!

fun! s:level_up()
    let l:all_mappings = []
    for k in range(33, 123) + [125, 126, 127]
        let l:all_mappings += [nr2char(l:k), '<C-' . nr2char(l:k) . '>']
    endfor
    let l:all_mappings += ['<Bar>', '<Left>', '<Right>', '<Up>', '<Down>']
    let l:all_mappings += ['<C-Bar>', '<C-Left>', '<C-Right>', '<C-Up>', '<C-Down>']
    let l:all_mappings += ['<S-Bar>', '<S-Left>', '<S-Right>', '<S-Up>', '<S-Down>']
    for i in range(1, 12)
        let l:all_mappings += ['<F' . l:i . '>', '<C-F' . l:i . '>', '<S-F' . l:i . '>']
    endfor

    let l:random = map(systemlist('seq 0 ' . (len(l:all_mappings)-1) . ' | shuf'), 'str2nr(v:val)')
    for i in range(0, len(l:all_mappings)-1)
        execute 'nnoremap ' . l:all_mappings[i] . ' ' . l:all_mappings[l:random[i]]
    endfor

    echo "Welcome to level 2"
endfun

command! VimLevelUp :call s:level_up()

This is guaranteed to give you a new way to experience Vim and endless hours of fun!

(Note: uses seq and shuf − it could be ported to BSD and OSX by using jot).

4
  • 4
    So...what does it do?
    – Wildcard
    Apr 2, 2016 at 0:44
  • 2
    Not tested, but I'd say it shuffles vim keys randomly. Talk about a steep learning curve...
    – mdup
    Apr 2, 2016 at 1:01
  • 2
    @Wildcard Try it. It's fun! ;-) Apr 2, 2016 at 11:26
  • 1
    @Carpetsmoker Now that's a whole new level of evil... I like it! :-)
    – statox
    Apr 2, 2016 at 21:42
5
  • Install a bunch of colorschemes.

  • Install the ScrollColors.vim plugin.

  • Split the window several times with several files.

  • Ensure set mousefocus and set mouse=a (this works better in the GUI).

  • au WinEnter * silent CN – change colorscheme when switching buffer

  • Turn off the lights, crack a glow-stick, and wave your mouse around. Make sure to warn anyone with epilepsy.

http://webmshare.com/vAbwz

2
  • 1
    The idea is pretty funny actually :-)
    – statox
    Apr 3, 2016 at 4:00
  • 1
    :-D ha ha it's the simple things in life
    – dusty
    Apr 3, 2016 at 6:18
4

Play Code-Golf!

Yes, the Internet's best[citation needed] competitive sport has come to Vim. You can try the vim-only challenges, or prove Vim's superiority in the standard code-golf challenges. Playing code-golf is a fun way to pass the time for avid Vim fans.
Disclaimer: I am an active user of Programming Puzzles and Code Golf, and am therefore affiliated with it.

On a serious note, we do need more puzzles and solutions using / about Vim: at the moment there are only 6 questions about Vim, and 72 answers using the language (excluding on those questions). So if you like Vim, you might like Programming Puzzles and Code Golf.

2
  • A bit late to join in the fun...
    – wizzwizz4
    Apr 2, 2016 at 17:05
  • It's never too late to join the fun :-)
    – statox
    Apr 2, 2016 at 21:44

Not the answer you're looking for? Browse other questions tagged or ask your own question.