You can install the support with Vundle with:or by directly dropping the files named below under your
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/vundle'
let g:snipMate = {}
let g:snipMate.snippet_version = 1
Plugin 'MarcWeber/vim-addon-mw-utils'
Plugin 'tomtom/tlib_vim'
Plugin 'garbas/vim-snipmate'
Plugin 'ourbigbook/ourbigbook', {'rtp': 'vim'}~/.vim/, e.g. vim/syntax/ourbigbook.vimThe following support is provided:
- vim/syntax/ourbigbook.vim: syntax highlighting.As for other programming languages, this cannot be perfect without actually parsing, which would be slow for larger files.But even the imperfect approximation already covers a lot of the most cases.Notably it turns off spelling from parts of the document like URLs and code which would otherwise contain many false positive spelling errors.
- vim/snippets/ourbigbook.snippets: snippets for github.com/honza/vim-snippets, which you also have to install first for them to work.For example, with those snippets installed, you can easily create links to headers. Suppose you have:To create an internal link to it you can:
= My long headerand it will automatically expand to:- copy
My long headerto the clipboard, see copy to clipboard shortcuts at: stackoverflow.com/questions/3961859/how-to-copy-to-clipboard-in-vim/67890119#67890119 - type
\xand then hit tab
This provides a reasonable alternative for ID calculation, until a ctags-like setup gets implemented (never/browser editor with preview-only? ;-))\x[my-long-header]Syntax highlighting can likely never be perfect without a full parser (which is slow), but even the imperfect approximate setup (as provided for most other languages) is already a huge usability improvement.We will attempt to err on the side of "misses some stuff but does not destroy the entire page below" whenever possible. - copy
- mappings:
<leader>f, which usually means,f(comma then F): start searching for a header in the current file. Does a regular/search without opening any windows, to is it very ligthweight. Mnemonic: "Find".<leader>h(requires Fugitive to be installed): sets up theObbGitGrepcommand, which searches for header across all git tracked files in the current Git repository. After,gyou are left in the prompt with:so if you complete that by:ObbGitGrepit will match headers that start withObbGitGrep animal kingdomanimal kingdoomcase insentively, e.g.:Vim regular expressions are accepted, e.g. if you don't want it to start with the search pattern:= Animal kingdom tree = Animal kingdom bookThe command opens a new tab (technically a "Vim error window") containing all matches, where you can click Enter to open one of them.ObbGitGrep .*animal kingdomMnemonic: "Header search".
A simple way to develop is to edit the Vundle repository directly under
~/.vim/bundle/ourbigbook.