Giter Club home page Giter Club logo

vimki's Introduction

vim ❤️ wiki = vimki

If you use Vim and like to keep notes as text files, then you should like this simple plugin.

Vimki allows to browse, navigate and edit a collection of text files in a single directory (usually ~/Wiki). These files contain hyperlinks to each other in the form of WikiWords, as in the original WikiWikiWeb.

So it smells like 1995 ? That's the goal :-). Text files are here to stay, cost almost nothing to store, and will still be available in the same form in the next decades and beyond. A dead simple wiki in plain old text is both durable and scalable.

I can (and do) throw everything at it: some random notes, my diary (a file per month), my contacts, my research notes and references, a catalog of all my stuff, books, films, music with the links to open when available, etc. All kind of data, loosely coupled or well structured, personal or professional, public or private (using :X vim command), but always interlinked. And as for the brain, with a growing number of links with the time.

The point of using vimki is to remove any friction in the flow of browsing, reading and writing. Everything you read is writable right now. To open a new file, I write a WikiWord, press Return with the cursor on it, and I'm now editing it (or just press ,, to go back, as I set , as vim <Leader> key on my french keyboard). And all collisions (content already existing for a new WikiWord) are in fact happy accidents with deep meaning.

The purpose of vimki is only to bring a wiki capability (quickly create and navigate in interconnected text files) to the editor, in the simplest and most straightforward manner. The goal is not to address document formatting, content generation or other features which can be better addressed by apropriate offline tools.

Installation

Vimki should install with your favorite package manager. For example, using vim-plug, add Plug 'mvertes/vimki' in the vim-plug section of your ~/.vimrc and in vim, run :PlugInstall.

Usage

The default mappings, present from any buffer, are defined as follow (by default, <Leader> stands for \):

mapping action
<Leader>ww open the Wiki HomePage
<Leader>wi open the Wiki index
<Leader>wf follow a WikiWord

The following mappings are present when editing a Wiki file:

mapping action
<Leader><Leader> close the file (back to previous)
<CR> follow the WikiWord under the cursor
<Tab> move to the next WikiWord
<BS> move to the previous WikiWord
<Leader>wr reload WikiWords

Customization

Several variables are checked by the script to customize vimki behavior. You can set them using let in your vimrc file. Example:

        let vimki_home = "$HOME/MyWiki/HomePage"
variable default description
vimki_suffix "" suffix appended to the names of WikiFiles
vimki_home $HOME/Wiki/HomePage + wimki_suffix path of Wiki HomePage
vimki_home_dir dir of vimki_home path of Wiki directory
vimki_upper 'A-Z' upper case characters for WikiWords
vimki_lower 'a-z' lower case characters for WikiWords
vimki_other '0-9_' non-letter characters for WikiWords
vimki_autowrite 1 to automatically write a Wiki file on close
vimki_ignore "" comma-separated list of words to ignore

Bugs

Issues and pull-requests are opened at https://github.com/mvertes/vimki.

Credits

This plugin was inspired by potwiki, vimwiki and some other projects.

vimki's People

Contributors

mvertes avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.