Skip to content

lervag/wiki.vim

Repository files navigation

Introduction

This is a Vim and neovim plugin for writing and maintaining a personal wiki. The plugin was initially based on vimwiki, but it is written mostly from scratch and is based on a more "do one thing and do it well" philosophy.

This README file contains basic information on how to get started, as well as a list of available features. For more details, please read the full documentation.

Note: wiki.vim is not a filetype plugin. It is designed to be used with filetype plugins, e.g. dedicated Markdown plugins. Users are advised to read :help wiki-intro-plugins for a list of plugins that work well with wiki.vim.

Note: wiki.vim requires Vim 9.1 or Neovim 0.9.5.

Table of contents

Quick Start

Installation

If you use vim-plug, then add the following line to your vimrc file:

Plug 'lervag/wiki.vim'

Or use some other plugin manager:

Usage

This outlines the basic steps to get started:

  1. Create a wiki directory where the wiki files should be stored, for instance ~/wiki.

  2. Add the following to your vimrc file:

    let g:wiki_root = '~/wiki'
  3. Now you can open the index file (by default index.wiki) with <leader>ww and start to add your notes as desired.

Please also read the Guide section in the documentation.

Features

  • Wiki functionality
    • Global
      • Commands (and mappings) to access a pre-specified wiki (g:wiki_root)
        • WikiIndex to open the index
        • WikiJournal to open the journal
        • WikiPages to select from list of all pages
        • WikiTags to select from list of tags
    • Local commands and mappings for
      • Navigation (follow links, go back, etc)
      • Renaming pages (will also update links in other pages)
      • Navigate through a table of contents (WikiToc)
      • Creating a table of contents (WikiTocGenerate)
      • Transforming links (from text to link or between link types)
      • Viewing wiki link graphs
      • Displaying incoming links (see WikiLinkIncomingToggle)
    • Completion of wiki links and link anchors
    • Text objects
      • iu au Link URL
      • it at Link text
    • New page templates
  • Support for journal entries
    • Navigating the journal back and forth with <c-p> and <c-n>
    • Support for parsing journal entries in order to make weekly and monthly summaries. The parsed result needs manual editing for good results.
  • Utility functionality
    • :WikiExport command for exporting to e.g. pdf with pandoc
  • Third-party support
    • ncm2: SubscopeDetector for nested completion

Acknowledgements

Without vimwiki, this plugin would never have existed. So my thanks go to the smart people that developed and maintains vimwiki, both for the inspiration and for the ideas.

Alternatives

Feel free to consider any of the many available alternatives. There are likely many more, but these are the ones I'm aware of: