sponsor Vim development Vim logo Vim Book Ad

Never Optimal Wiki : a minimalistic pure vim personal wiki

 script karma  Rating 2/2, Downloaded by 2333  Comments, bugs, improvements  Vim wiki

created by
Dalker .
script type
Git repository: https://github.com/Dalker/vim-now
Note: a proper help file has been included since version 0.5. Reach it with ':help now'

Rationale:  after having tried several wiki vim plugins and several personal wiki workflows, the author realized that:
                 a) full 'wiki' plugins tend to have too many features and impose too many conventions on the user
                 b) no personal note-taking workflow is ever optimal ("never optimal")
                 c) to actually get something written or done, you have to do it NOW (on a Never Optimal Wiki)

- From anywhere within vim: (<l> means <leader>) - all global keymaps can be easily overridden (see configuration at bottom of page)
    <l>nn  updates and enters root Never Optimal Wiki index
    <l>ni   updates and enters current dir's Never Optimal Wiki index
    <l>nr  creates new random note (in a predefined 'in' dir)

-  Within a NOW buffer: (<ll> means <localleader>)
    gf        open dir or file under cursor, adding suffix if needed (vim standard)
    Ctrl-O go back to previous location (vim standard)
    <ll>cf  create file or dir under cursor,  adding suffix if needed
    <ll>gf  open under cursor with external program, which must be properly declared (see configuration at bottom of page)
                the defaults are 'firefox' for urls and 'mimeopen' for anything else, which should work well in a Linux environment
    <cr>     overhauled gf: decides whether to act as <ll>gf, gf or <ll>cf (can be turned off to recover default <cr> functionality)
     -          go up to either dir's index.now file or to a netrw view of current directory
    <ll>n    interactively (re)name a (random note) file in place
    <ll>c    interactively classify (move) a file somewhere else, keeping the same name
    <ll>s    copy current file to shadow dir, prepending date to name (to keep a historical log of notes)

- Minimal syntax highliting:
   ./...    link to another file
   =...=  emphasized text (meant for 'titles')
   *...*   emphasized text (meant for everything else)

Possible usage:
   - dump anything from the mind into a random note ( with <leader>nr from anywhere on vim)
   - occasionally 'process' notes by naming them and placing them somewhere on the directory tree (with <localleader>n and <ll>c)
   - shadow some notes, notably personal writing, to keep a historical log - usually right after naming them (with <localleader>s)

Possible directory tree (besides in/ and shadow/ or equivalent):
   - a 'circulating' dir with subdirs to help temporary notes blend together into something
   - a 'lifehack' dir to contain long-term lifehacking tips
   - a 'quotes' dir to contain notes which carry book quotes, based on post-its glued while reading one
   - etc...

  This could result in the a dir structure similar to the following:
  now/---- in/ ---- random01.now
       |        |-- random02.now
       |        |-- (...)
       |        \-- random15.now
       |-- shadow/ -- (...)
       |-- circulating/ ---- thinking_about_A/ -- (...)  
       |                 |-- (...)
       |                 \-- thinking_about_Z/ -- (...)
       |-- lifehack/
       |-- quotes/
       \-- (...)
install details
It is recommended to decompress the tarball as a pathogen vimscript #2332 'bundle' directory or similar, e.g.:
> cd ~/.vim/bundle
> tar xfz /tmp/vim-now.tgz

-  User is expected to have <leader> and <localleader> already setup (in .vimrc)
-  Several paths, etc... may be optionally customized in .vimrc, as explained at the top of plugin/now.vim file
    Most probably the single option that will need to be set by the user is the root dir of the never optimal wiki:
    > let g:NOW_rootdir = $HOME .  '/location/of/rootdir/'

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
vim-now.tgz 0.7 2017-08-10 7.0 Dalker . - added keybindings/functions for title level increasing and decreasing
(default: <localleader>t and <localleader>T)
- several minor bug fixes
- minor improvements to documentation
vim-now.tgz 6.0 2016-10-07 7.0 Dalker . Overhauled <enter> key while in now buffer. Word under cursor is now first verified to be a directory to enter, then an URL to browse, then having a configured suffix to open externally, then to exist with some vim-recognized suffix to open internally and finally, if all else fails, to create adding a now suffix.
vim-now.tgz 0.5.1 2016-01-18 7.0 Dalker . bug fix:  debugged auto-closing of shadow buffer upon creation
vim-now.tgz 0.5 2016-01-15 7.0 Dalker . - First version with full documentation included (:help now)
vim-now.tgz 0.4.1 2015-12-06 7.0 Dalker . bug fixes: - got rid of little bug introduced in 0.4 when moving up from file in dir without index.now file
                  - the new autoload/ dir had been ommitted from the tgz, rendering realease 0.4 useless... :-(
vim-now.tgz 0.4 2015-11-08 7.0 Dalker . - user can now make index in local dir (default keymap: <l>nk)
- navigation with - now moves up to next index if available, updating it with list of new files if necessary
- folding implemented, based on 'titles' and 'subtitles'
vim-now.tgz 0.3.1 2015-11-07 7.0 Dalker . - correct bug introduced in 0.3: vim's isdirectory() doesn't understand ~, so substitute by full $HOME path when necessary
vim-now.tgz 0.3 2015-11-07 7.0 Dalker . - make random note and shadow necessarily subdirs of root path; this limits freedom of choice a bit, but ensures that changing a single configuration variable - the root dir - gives access to a different 'instance' of the Never Optimal Wiki
- when going to index or random note, create dir if it doesn't exist yet (fundamental for new users and when setting up different root dir)
vim-now.tgz 0.2 2015-11-07 7.0 Dalker . - naming and moving notes now based on vim builtin rename(), much safer than calling external commands
- classify() can now create dir on the fly if necessary (asking for confirmation first)
- global options now handled in a new way that facilitates user configuration
vim-now.tgz 0.1 2015-11-06 7.0 Dalker . working version - but be careful with lack of safeguards when renaming / moving notes (it should work when used as intended)
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.