/memex

Text-file-based Vim/Ruby personal information storage... thing (German flavoured)

Primary LanguageRuby

Memex

This is a work-in-progress personal project. I might write about it if it actually works for me. Time will tell.

Screenshot of this project running

Zettel

From Vim:

  • :ZettelNew Create new zettel, optionally linking highlighted text
  • :ZettelOpen Fuzzy find zettel based on title
  • :ZettelOpenRecent (like FZFMru)
  • :ZettelGrep Full text search for zettel
    • Handle zero results case (it's doing some weird error)
  • :ZettelBacklinks Load back-linking zettels into the quickfix list
  • Tab-based zettel link auto-completion
  • <c-]> or gf jumps to linked files
  • Syntax highlighting for hashtags

From command line:

  • bin/zettel new opens Vim in a new zettel
  • bin/zettel open opens Vim to an existing zettel or to :ZettelOpen
  • bin/zettel list lists all zettels
    • --hastags '#a && #b' filter by hashtag query
    • --backlinking-to x0r filter by back-links
  • bin/zettel tags for listing all tags
  • bin/zettel rename-tags for updating tags across all zettel

Journal

  • bin/journal today opens Vim to today's journal, creating it if needed
  • bin/journal yesterday opens Vim to yesterday's journal, creating it if needed
  • Auto-delete new files if they haven't been edited

Wiki

Linked markdown files.

  • bin/wiki open opens Vim to given page or index
  • bin/wiki export exports a page as a standalone HTML file

TODO: References

  • links to, or copies of, external materials in an easy-to-reference format
  • a way to store digitised paper documents?

TODO: Todo

  • A replacement for Todoist, maybe. This is turning into Org mode, man.

Memex

  • bin/memex mount mounts the encrypted volume
  • bin/memex eject ejects the encrypted volume, committing changes to git
  • bin/memex run mounts, runs a script, then ejects
  • auto-updates itself from the master copy inside the encrypted volume

Tests

Use bin/test as a stand-in for the bench command. In test.vim:

let test#ruby#testbench#executable = 'bin/test'

Mapping for manual tests:

nnoremap <leader>tm :tabnew term://bundle exec ruby test/manual/reference/interactive_metadata.rb<cr>