Pan, zoom, and map a 2D text plane (for vim)
VimL
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
README.md
nav.vim

README.md

microViche

MicroViche is sort of like a microfiche reader: it lets you pan and zoom through text. Installation is simple: download nav.vim, open Vim, :source nav.vim, and press f10. Check out the youtube video!

Commands

Use the mouse to pan or evoke commands with f10:

h j k l y u b n pan (takes count) f1 help and warnings
r M redraw visible / all o open map
A D append / delete split L insert label
S W settings / save settings q esc quit

In the map (f10 o):

h j k l y u b n move (takes count) f1 help and warnings
H J K L Y U B N pan (takes count) z zoom
g enter doubleclick goto label c C center cursor / view
click drag select / pan q esc quit
p P prev / next in history

Labels

Labels are lines that start with a label marker (default txb:) and specify an anchor, title, or both. When the map is updated (f10 r, o, and M), displaced labels are reanchored by inserting or removing immediately preceding blank lines. Anchoring failures are shown in the map.

The syntax is marker(anchor)(:)( title#highlght#comment), but let's just consider some examples:
   txb:345 blah blah        anchor to line 345
   txb:345: Intro#Search    anchor 345, title Intro, color Search (Note the : separator).
   txb: Intro               just title Intro
   txb: Intro## blah blah   just title Intro

Tips

  • To resolve labeling conflicts, the case-insensitive alphabetically first title starting with ! will be shown, eg, txb:321: !aaaImportant. On cursor-over, the rest will be shown in line number order.
  • Terminal emulators work better than gVim since the latter doesn't support mousing in map mode or automatic redrawing on window / font resize. Cygwin (and the bundled mintty terminal emulator) is a great Windows setup.
  • To disable scrollbinding: f10 Settings→ change autoexe to se noscb nowrap→apply all
  • Keyboard-free navigation is possible: dragging to the topleft corner opens the map and clicking the topleft corner closes it. (Terminal emulator only; ttymouse must be set to sgr or xterm2.)
  • If you have an inaccessible hotkey, :call TxbKey('S') for Settings.
  • To highight labels, try: syntax match Title +^txb\S: \zs.[^#\n]+ oneline display