24

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!

closed as off-topic by Martin Tournoij Apr 3 '16 at 2:34

  • This question does not appear to be about Vi and Vim family of editors, within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    Write a book of jokes, using vim! – loutre Apr 1 '16 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 '16 at 9:54
  • 3
    I have a lot of fun with Vim, simply by using it efficiently. – romainl Apr 1 '16 at 10:01
  • 2
    I'm closing this question as off-topic because April fools is over. No more fun allowed now! :p – Martin Tournoij Apr 3 '16 at 2:34
  • 2
    @Carpetsmoker But... but.... but...... No more fun? :-( – wizzwizz4 Apr 3 '16 at 9:00
21

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.

  • 1
    reminded me of flappyvird - github.com/mattn/flappyvird-vim – Sundeep Apr 1 '16 at 11:01
  • @spasic: I didn't know it but it totally fits the list! – statox Apr 1 '16 at 12:04
  • 1
    you could also watch the whole world through the matrix plugin – mMontu Apr 1 '16 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 '16 at 21:39
  • The snake one would be great to get new users to develop muscle memory for the hjkl keys! – dbmrq May 20 '16 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.

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")

  • 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 '16 at 13:02
  • Yes - anything sufficiently interesting to make the effort worthy :) – VanLaser Apr 1 '16 at 13:09
  • 1
    @statox, that is an awesome site, thank you for linking to it! :D – Wildcard Apr 2 '16 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 '16 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
    So...what does it do? – Wildcard Apr 2 '16 at 0:44
  • 2
    Not tested, but I'd say it shuffles vim keys randomly. Talk about a steep learning curve... – mdup Apr 2 '16 at 1:01
  • 2
    @Wildcard Try it. It's fun! ;-) – Martin Tournoij Apr 2 '16 at 11:26
  • @Carpetsmoker Now that's a whole new level of evil... I like it! :-) – statox Apr 2 '16 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

  • 1
    The idea is pretty funny actually :-) – statox Apr 3 '16 at 4:00
  • 1
    :-D ha ha it's the simple things in life – dusty Apr 3 '16 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.

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

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