# Vimdeck [![Gem Version](https://badge.fury.io/rb/vimdeck.png)](http://badge.fury.io/rb/vimdeck) VIM as a presentation tool ## News Vimdeck now uses [redcarpet](http://github.com/vmg/redcarpet) to parse and render markdown! I've cleaned up the code significantly. So those of you who like more features in Vimdeck can fork and pull-request your buns off. ## Installation Install a markdown syntax highlighting plugin for VIM. (I recommend [tpope/vim-markdown](http://github.com/tpope/vim-markdown)) Install the VIM plugin [SyntaxRange](https://github.com/vim-scripts/SyntaxRange). ``` gem install vimdeck ``` ## Usage 1. Write your slides in a markdown file (See below for details on _limited_ markdown syntax) 2. Run `vimdeck ` and it will generate a file for each slide and open them in VIM ## VIM Script Vimdeck will also provide a script file that will set up keybindings for you. - PageUp/Left go backwards - PageDown/Right go forward - Q closes presentation ## A Note about VIM This is a tool meant for VIM users. In other words, it is not a VIM plugin — it's a script that converts a plain text document into multiple files. The only hard dependency is [SyntaxRange](https://github.com/vim-scripts/SyntaxRange). Other than that you may need some syntax highlighting plugins to handle the code syntax highlighting. ## A Note About Markdown Slides are separated by 2 newlines in a row. Example: ``` # Slide 1 - has some - really important - information # Slide 2 Is less important ``` Vimdeck uses redcarpet to parse its markdown and implements a custom renderer for things like ascii art. It uses a very small subset of markdown. List of items supported: - h1s - h2s - images - fenced code blocks That's it. The point of Markdown is that it's human-readable. Other stuff like (un)ordered lists, block quotes, indented code blocks, etc. will be displayed just as they were written. Fenced code blocks look like this: ```javascript this.is = 'code' ``` ## Highlighting Syntax Vimdeck also supports "highlighting" parts of a slide. This is an experimental feature and needs more testing. Use `{~ unimportant_text_here ~}` to "unhighlight" portions of a slide: # Slide Title {~- Unimportant bullet~} - Important bullet {~- Really unimportant bullet~} This allows you to create multiple versions of the same slide but with different parts highlighted. Which is something I like to use often when presenting code snippets. ## Why Ruby? Additionally, I want to point out that I realize that it's odd to have a VIM-based tool and not write it as a VIM script. Ruby was my language of choice only because the ascii art dependencies were implemented as ruby gems. Plus, I ♥ ruby. ##Screenshots: Vimdeck converts h1s and h2s into ascii art ![](img/demo1.png) Lists are displayed as they are written ![](img/demo2.png) Vimdeck will also augment its vimscript to provide syntax highlighting ![](img/demo3.png) Images are even converted to ascii art! ![](img/demo4.png) --------------------- Made by [tybenz](http://github.com/tybenz): [tybenz.com](http://tybenz.com) // [@tybenz](http://twitter.com/tybenz) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/tybenz/vimdeck/trend.png)](https://bitdeli.com/free "Bitdeli Badge")