vim_printer

Gem Version Dependency Status Code Climate

Batch print/export files to htmls using the power of Vim. Output will be saved to vim_printer_output.tar.gz and ready for extract and viewing in your favourite browser.

  • Unlimited support for vim colorschemes if enabled, or default colorscheme that comes with Vim.
  • Can print any files in any languages that you can open with Vim.
  • Use the power of Vim to print the code without any other tools.

Example Outputs:

The html output as rendered in the browser

  • The original input using Tomorrow-Night colorscheme from Tomorrow-theme in Vim

The html output as renderd in the browser

Requirements

  • Vim - any recent version should be ok.

  • Any decent ~/.vimrc should do

  • Any valid file types that are supported by Vim will produce proper color syntax in the output.

    • By default Vim supports most of major languages so you should see the proper syntax with color in the output.
    • On newer language like Elixir, you may have to first install vim-elixir to see the proper syntax in the output. If this is not installed then you will get the output but will not have the beautiful color syntax.

Sample session

  • Run with the sample fixture files
vim_printer -b test/fixtures -e rb java -r

Will produce the file vim_printer_fixtures.tar.gz with the following result on the screen.

FYI: process file 1 of 8 : ./demo1.xxx.rb
FYI: process file 2 of 8 : ./demo1.yyy.rb
FYI: process file 3 of 8 : ./demo2.xxx.rb
FYI: process file 4 of 8 : ./demo2.yyy.rb
FYI: process file 5 of 8 : ./java/demo3.xxx.java
FYI: process file 6 of 8 : ./java/demo3.yyy.java
FYI: process file 7 of 8 : ./java/demo4.xxx.java
FYI: process file 8 of 8 : ./java/demo4.yyy.java
Your output file is ./test/fixtures/vim_printer_fixtures.tar.gz

Usage

  • Install the gem for your version of ruby

e.g. for rbenv your session will be something like

rbenv local 2.1.2
rbenv rehash
gem install vim_printer
  • Print any files using the gem
vim_printer
  • Print any files that you like using the simplest command

The following command will print out all java, and ruby files recursively using the solarized colorscheme.

vim_printer --base-dir ./test/fixtures \
            --exts rb \
            --theme solarized

Your output will be saved to the default vim_printer_fixtures.tar.gz in the directory where you run this command. To see the output in your browser just type:

mkdir -p ~/Desktop/vim_printer
mv vim_printer_fixtures.tar.gz ~/Desktop/vim_printer
cd ~/Desktop/vim_printer
tar zxvf vim_printer_fixtures.tar.gz
  • Print only files that contain the word xxx in the title
vim_printer --base-dir ./test/fixtures \
            --exts java \
            --theme solarized \
            --n xxx
  • To include files that do not have any extension you can use --non-exts
# To print all ruby files as well as 'Gemfile' or 'Rakefile'
vim_printer -e ruby -f Gemfile Rakefile -r
  • For help in using the gem just type vim_printer without any parameter
Usage:
  vim_printer

Options:
  -b, [--base-dir=BASE_DIR]                # Base directory
                                           # Default: . (current directory)
  -e, [--exts=one two three]               # List of extensions to search for
  -f, [--non-exts=one two three]           # List of files without extension to search for
  -n, [--inc-words=one two three]          # List of words in the filename to be included in the result if any
  -x, [--exc-words=one two three]          # List of words in the filename to be excluded from the result if any
  -i, [--ignore-case], [--no-ignore-case]  # Match case insensitively
                                           # Default: true
  -r, [--recursive], [--no-recursive]      # Search for files recursively
                                           # Default: true
  -v, [--version], [--no-version]          # Display version information
  -t, [--theme=THEME]                      # Vim colorscheme to use
                                           # Default: 'default'
  -c, [--index], [--no-index]              # Generate the index.html file for the result
                                           # Default: true

Print files to (x)html using Vim

Development/Testing

git clone https://github.com/agilecreativity/vim_printer.git
cd vim_printer
bundle
# run default test
rake

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Make sure that you add the tests and ensure that all tests are passed
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request