Vim Tips Wiki

Printing with syntax highlighting independent of your normal highlighting

1,624pages on
this wiki
Add New Page
Talk0 Share

Duplicate tip

This tip is very similar to the following:

These tips need to be merged – see the merge guidelines.

Tip 111 Printable Monobook Previous Next

created 2001 · complexity intermediate · author Aric Blumer · version 6.0

I have found it undesirable to use :hardcopy directly because it uses the current syntax highlighting to determine how to print the text. For example, I like to print comments in italics, but I don't like italic fonts on the screen. This tip will show you how to set up a colorscheme for printing and use it only when you print. This assumes that you are already using a colorscheme.

I copied an existing colorscheme to ~/.vim/colors/print.vim, and changed all the lines like this:

highlight Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20

to this:

highlight clear Normal

Then I set the syntax groups how I wanted them to be printed on the printer:

highlight Comment term=italic cterm=italic gui=italic
highlight Constant term=bold cterm=bold gui=bold

I then defined the following command and function in my vimrc:

command! -nargs=* Hardcopy call DoMyPrint('<args>')
function DoMyPrint(args)
  let colorsave=g:colors_name
  color print
  exec 'hardcopy '.a:args
  exec 'color '.colorsave

After this is complete, you can do (use uppercase 'H'):

:Hardcopy > /tmp/

or just



Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki