
VimWiki – A personal wiki for Vim - type0
http://vimwiki.github.io/
======
patrickdavey
It's GREAT to see vimwiki at the top of Hacker News.

I've been using this for years, and keep all my notes in a wiki[0], written in
GitHub flavour mark down, with syntax highlighting etc. in the editor. I guess
it's not orgmode (which sounds amazing), but it seems really really good to
me.

I created the vimwiki_markdown[1] gem which allows you to convert GH style
markdown to HTML using the wiki. Now I might just call out to pandoc, but I
didn't know about it at the time, and my gem works fine*

I love that you can have project specific wikis etc. It's just so great. I'll
also link to the relevant section in my .vimrc[2] if you are going to go down
the markdown route.

[0] [http://wiki.psdavey.com](http://wiki.psdavey.com)

[1]
[https://github.com/patrickdavey/vimwiki_markdown](https://github.com/patrickdavey/vimwiki_markdown)

[2]
[https://github.com/patrickdavey/dotfiles/blob/682e72e4b7a70e...](https://github.com/patrickdavey/dotfiles/blob/682e72e4b7a70e50858d1a3b7f0713ce6b470fb6/vim/.vimrc#L243-L281)

~~~
haberman
This definitely appeals to me for its simplicity, but the major downside to
this approach (for me) is that you can't (easily) draw pictures.

So often when I am taking notes, the notes involve diagrams. Markdown is great
at text, but has nothing for diagrams.

After a lot of thinking about this problem, I've decided to start using an
iPad with an Apple Pencil and Microsoft OneNote. Here is an example of some
notes I took when thinking about an AudioUnit plugin that would dilate time:

[https://1drv.ms/o/s!AtbMnk02vU5DgQBbmSeyPx9zd1Dn](https://1drv.ms/o/s!AtbMnk02vU5DgQBbmSeyPx9zd1Dn)

VimWiki is definitely very cool. Just sharing this in case anyone out there
has the same concern as me about drawing diagrams.

~~~
thehigherlife
how good is the handwriting recognition for searches etc?

~~~
haberman
The engine is very good; it's recognized all my writing. The downside is that
it is offline -- it happens in the cloud. This means it's a little delayed and
sometimes it seems mysteriously unavailable completely.

~~~
saghm
I find it interesting that you use the term "offline" to mean "in the cloud".
I generally use it in the _opposite_ way.

~~~
haberman
Ha, I see your point. I used "offline" because it is happening in a way that
is disconnected with my interactive usage. It doesn't analyze the handwriting
as I write, it processes it in batch later, and this might even happen during
a moment when I'm not connected to the internet. But I can see why this usage
could be ambiguous or confusing.

------
lambdasue
While I never got on terms with orgmode, I cannot praise vimwiki high enough.
It's intuitive and simple enough to not have very steep learning curve.

I use it with taskwiki [1] extension, which stores all the tasks in the
awesome Taskwarrior [2] CLI task manager. With this, I have my tasks in my
text files, searchable just a command away on the CLI or my mobile phone via
the Android app.

[1] [https://taskwarrior.org/](https://taskwarrior.org/) [2]
[https://github.com/tbabej/taskwiki](https://github.com/tbabej/taskwiki)

~~~
marianov
I've setup vimwiki, taskwarrior (ubuntu),taskwarrior for Android and setup
sync with a server. How do you get the items you add in the Android App to
show up in Vimwiki?

~~~
marianov
Read the response down on this thread. The key is using tags and viewports

------
JasonSage
Only looking at this page, I have no clue what this does.

It says...

    
    
        organize notes and ideas
        manage todo-lists
        write documentation
        write a diary
    

I can already do these in vim, with text files or markdown files. What is this
actually doing, then?

Projects like this really deserve some high-level explanation like "Do you
want to do X, but don't like having to do Y? This addresses that."

~~~
falcolas
Creating links: when your cursor is over a word, hit enter. To follow, hit
enter. To go back, hit backspace.

Todo Lists: Hitting C-Space marks the item as done or not done. It also
creates a progress indicator on parent TODO items.

    
    
        - [.] Do something
            - [X] Something 1
            - [ ] Something 2
            - [ ] Something 3
    

Diary - Hit leader-w leader-w, you automatically get a new page created with
today's date to write in. leader-w i will get you to a diary index page.
leader-w leader-i will auto-populate that index page.

Tables are auto-formatted to match the text you put into them.

All of this is entirely possible with plain text files, vimwiki just makes it
easier to do. It's even compatible with markdown formatted files.

~~~
nerdponx
So it's basically a suite of tools for writing a wiki?

Does it have its own build/rendering engine, or can I use one I already know
(Pandoc)?

~~~
falcolas
It has a few built-in syntaxes (including Markdown), and can render those out
to HTML (including some generic templating for having static CSS/JavaScript).

And frankly, I simply consider it to _be_ a wiki. I rarely if ever find the
need to export it out. Makes for a great personal wiki if you're already in
Vim.

~~~
funkymike
I have successfully used the export feature to hand off project documentation
I was keeping in vimwiki. This way they got a set of HTML files that anyone
could view. Some of them did not use vim at all so while this meant the
documentation would not be as easy to edit at least it was accessible.

------
grimgrin
The one vimwiki line I have in my vimrc is to set the path to my Dropbox.

    
    
      let g:vimwiki_list = [{'path': '~/Dropbox/Public/briefcase/vimwiki'}]
    

All of the default commands are pretty nice. Here's a nice cheatsheet:

[http://thedarnedestthing.com/vimwiki%20cheatsheet](http://thedarnedestthing.com/vimwiki%20cheatsheet)

------
grimoald
Vimwiki maintainer here. Feel free to ask questions.

~~~
mVChr
Is there a recommended way to sync this with a remote server or service? My
interest is to share the info between devices. I suppose I could just use a
git repo, but wondering if there's a less manual way.

~~~
grimoald
There is no standard way. It's just a bunch of plain text files, so there are
many ways to sync. AFAIK, many users use Dropbox.

~~~
falcolas
Dropbox works well, as does (oddly enough) iCloud. Syncthing also works well
enough too. I simply simlink whichever choice I make back to my home
directory, and it works as expected.

------
hpincket
I've used VimWiki for a couple years now. I use the most basic features
(Enter, Backspace). The ability to instantly jump to the wiki is the most
useful (Leader W W). My wiki is just a folder in my Dropbox so I can get to it
on almost any computer.

When I started, VimWiki syntax was better supported than markdown. I've seen
lots of markdown related pull requests come through, so maybe that's changed.

I use VimWiki for:

    
    
      * Life goals (stretch and short term). I use it almost as a centering tool.
      * Poetry
      * Passages from books
      * Book summaries (that I write)
      * Lecture/Speech notes
      * Notes on misc. items I want to explore
      * Ideas for future science fiction short stories
    

Last summer I wrote a simple Awk script to extract VimWiki style definitions
(Term::Definition) into TSV's for importing into Anki. I was frustrated that I
couldn't fully automate this process without modifying Anki. Maybe someone
else has figured this out?

~~~
lambdasue
Regarding the Anki import, this Vim plugin might be of interest:

[https://github.com/tbabej/knowledge](https://github.com/tbabej/knowledge)

Beware, highly experimental, and the documentation is lacking (reading the
tests would be the best idea to get a feeling how the syntax works).

------
kondor6c
This looks like Org mode for Vim, very exciting! I like the ability to export
to an HTML page. It might be useful to export as doku/mediawiki, markdown, or
other types of formatting.

~~~
type0
There is also instant Markdown extension: [https://github.com/suan/vim-
instant-markdown](https://github.com/suan/vim-instant-markdown)

------
ecthiender
So its basically like Orgmode (a simplistic version, that is) but for Vim?

~~~
kaushalmodi
For people, not familiar with org mode, the markup portion is a very very
small subset of org mode. Org mode is a very powerful tool that is used for
many more applications. People complaining about "usability" of org mode do
not know where to begin "learning" org mode. The thing is that no one needs to
"learn the whole org mode"; you take it in piece by piece, based on the
features you need. I started off learning just the (1) org markup syntax, and
exporting. You write once, and then export the same to HTML, PDF, markdown,
plain ASCII text, etc. Then I learned (2) Org capture.. taking notes at whim
of a moment, dumping all notes in a single file (you don't have to do it in a
single file) categorized by tags. Then I wanted to take notes with "living
code".. notes that contain the code as well as the code output. So that was
learning (3) Org babel. Then I wanted the notes to generate files containing
the code in those notes. Enter (4) Org tangle. One day I felt like why not
experiment with (5) Org table that is plain text spreadsheet that can contain
formulas too. It truly is a beautiful piece of software. At some point, I
started tinkering with elisp, and started appreciating the org mode design
even more. I felt a need to have some thing like the default ASCII exporter,
but few of my own tweaks. (6) And I learnt how to design my own custom org
exporter.

And I believe that all of that is probably less than 50% of the whole of org
mode. I will learn more as and when I feel the need. If you feel lost, read
the org mode manual or ask the org mode mailing list.

------
Raphmedia
(Serious)

I really want to learn either Vim or Emacs but I've never been able to decide
which one to learn. Every time I've tried to search about this topic I end up
in petty wars. Help?

~~~
bandrami
Even though I'm more of an Emacs user, I'd say if you're going to learn one,
learn vi. Not vim, mind you: nvi, the original one (you can emulate it in vim
with "set compatible"). Use it for a few months until you get muscle memory
for it. Just about any UNIX-like system you'll work on, anywhere, has at least
the old vi, and it's very useful to just have that muscle memory tucked away.

~~~
moosingin3space
What's more, if you prefer the Emacs environment, you can run a vi-like editor
in it (Evil). Emacs keybindings, on the other hand, are the default
keybindings for GNU readline, which is used in a lot of shells and related
programs. Additionally, I know that OS X allows you to use Emacs keybindings
in any text field. (I am not a mac user, can't comment on this.)

(Disclaimer: I am a happy Spacemacs user, and it would take a lot to pry it
away from me.)

I'd recommend learning vi, so you can learn how awesome modal editing is.
Then, learn Emacs' basic commands for line editing (so as to make readline
apps easier to work with). Once you've done that, evaluate whether a (Neo)vim
with plugins or Spacemacs setup is better for you, then choose one of those.

~~~
DeadBabyOrgasm
As an avid vim user who has tried Evil mode, emacs, and even spacemacs, I
fully agree with all of the reasons you listed. To add to it:

\- *-mode (specific syntax highlighting, commands, etc. based on project or
task)

\- edit/save remote files via built-in TRAMP [0]

\- built-in plugin manager (interactive, or via emacs init config)

\- MELPA [1]

\- Non-blocking (e.g., run tests in one buffer while editing source in
another)

\- client-server approach (neovim adopted this, but emacs has had far more
time to work out the kinks)

The main reasons I stay with vim are:

\- already committed to vi-like muscle memory (and evil-mode, while admirable,
doesn't cut it)

\- no translation of VimL configs and plugins to Emacs Lisp

\- many plugins for languages, frameworks, etc. which I use daily are severely
out of date in emacs (and I'm too lazy to maintain them myself)

[0]: [http://askubuntu.com/questions/79100/how-to-open-a-remote-
fi...](http://askubuntu.com/questions/79100/how-to-open-a-remote-file-ssh-
with-my-local-emacs)

[1]: [http://melpa.org/](http://melpa.org/)

~~~
moosingin3space
I prefer the Emacs environment: I love TRAMP, org-mode, and the simplicity of
getting a fully-featured IDE just by adding a list to my spacemacs
configuration.

Do you use neovim?

------
yellowboxtenant
Advantage over vim-notes? [https://github.com/xolox/vim-
notes](https://github.com/xolox/vim-notes)

~~~
DeadBabyOrgasm
It seems vim-notes is much more developed for taking general, self-
encompassing notes, similar in style to Evernote. I don't see a way to inter-
link the notes like vim's help, but it does have far more rich and powerful
note-taking features.

I'd still use vim-wiki because it's intended to be a lightweight knowledge
database similar to a mind-map, but more robust. It allows for quick, easy
organization of ideas whereas vim-notes appears to be more for a formal
writing process.

~~~
yellowboxtenant
vim-notes does have inter-linking, so I guess this project is pretty similar.

------
shoover
In all the orgmode threads, a viable replacement never comes up in any other
editor, even for the basic features of note taking. Now here we have several
commenters who have tried both and really like VimWiki. As an Emacs user who
might like a modern feeling editor but stays mostly because of orgmode, seeing
the enthusiasm here gives me hope that similar may be reachable in Visual
Studio Code one day.

------
wildflyalpha
I keep personal notes in Dropbox. I formerly used plain text files, then I
used my own syntax highlight format in GEdit. Then I started using Markdown in
Sublime Text (with the "Sunburst" colour theme for making everything stand-
out).

I tried vimwiki with the files stored in Dropbox but it didn't go anywhere. I
liked the simplicity of just bunging stuff in a semi-structured .md file.

I worked with Markdown files in Dropbox for several years. However in the last
year or two, I sometimes have occaison to read/write notes from my phone or
tablet and Sublime Text is not available for those systems. I tried various
Android editors like Markdawn and DroidEdit but nothing I was satisfied with.

These days I am slowly gravitating to Google Keep. It's simple but OK for my
needs and I can use it cross-device - on desktop these is even a Chrome app
which works like a desktop app.

~~~
ino
Sunburst is such a good color scheme. I really like that the background is
black.

I've made some changes like make the left gutter grey have grey background (so
I know where it starts and ends) and some other changes for the way I like to
see html, php, js and css. I might have broken the syntax for other languages.

[https://github.com/inod/contraste/blob/master/Contraste.tmTh...](https://github.com/inod/contraste/blob/master/Contraste.tmTheme)

------
jcpst
Been using org-mode. Trying out vimwiki after seeing this and I like the
simplicity of it better. It has enough features for me to remove the overhead
of an emacs + evil install just for org-mode.

~~~
nextos
Why do you find org-mode complex? I think it's simple, but perhaps not easy.

~~~
jcpst
I don't necessarily find it more complex to get started on, but some of the
vimwiki defaults with navigation and creating new pages are nice to me. Plus,
it makes my workflow simpler, because org-mode was the only reason I was
jumping into emacs.

------
toisanji
Love the idea, but why use a custom syntax instead of markdown?

~~~
smhenderson
Markdown is supported, from the Features list...

 _three markup syntaxes supported: Vimwiki 's own syntax, Markdown, MediaWiki_

------
johnnycarcin
This is really cool! I wrote a small go app awhile back to solve my personal
wiki problem
([https://github.com/esell/bookie](https://github.com/esell/bookie)) but since
I am in vim most of the day, this seems like an even better solution. You
could even just take the output and toss it up on Github pages or whatever if
you wanted to share it.

------
d08ble
I'm using LiveComment
[https://www.npmjs.com/package/livecomment](https://www.npmjs.com/package/livecomment)

LiveComment is Editor/IDE-independent, cross-language, realtime & easy with
client or server JavaScript plugins.

For example, my HN notes pool [http://acpul.org/pool](http://acpul.org/pool)

------
pacuna
I like org-mode but I'm a vim user and I don't want to be switching around
constantly. I'll definitely will try this

~~~
Dangeranger
Just so you know there is a Vim OrgMode extension.
[https://github.com/jceb/vim-orgmode](https://github.com/jceb/vim-orgmode)

------
k2enemy
I'm a huge fan of VimWiki and have years worth of data in my main wiki.

What are people using for their wiki on iOS? Right now I'm syncing with iA
Writer. It works pretty well, but doesn't support links. It looks like Bear is
promising -- it uses the same style links, but it doesn't sync with a folder
of text files. Any others out there?

~~~
rasengan0
for ios wiki [http://www.trunknotes.com/](http://www.trunknotes.com/) but no
interop with vimwiki so i stopped

I use [https://daedalusapp.com/](https://daedalusapp.com/) which i can webdav
remotely and rsync locally with vimwiki

~~~
k2enemy
Thanks!

------
ghostwreck
I have tried using this or orgmode at various points, but I haven't been able
to find a good workflow for linking images/screen shots with notes (which I do
quite often in Evernote). I use vim as my primary IDE, so I would love to find
a solution for image links to let me use VimWiki as well.

~~~
grimoald
Not sure what you mean by workflow, but you can include images like this:

    
    
        {{file:../../images/image.png}}
        {{http://example.com/image.png}}
    

Vim is of course not able to display images, but they appear when you convert
the wiki page to HTML.

------
yoland68
I use this so much it became my to-go place to create step by step plan
(a.plan) for any project I do. I would also bind :w with converting the wiki
to html and have a cronjob to sync the html with the server so anyone can
easily check the project I m working on and its progress

------
pencilcode
I've been using vimwiki for years - it's been an absolute life-saver - but had
no idea it now supported markdown. Any one know of a tool to convert vimwiki
syntax to markdown or can i just use markdown in new files and keep vimwiki in
the old files?

------
grive
Very cool, I was just searching this kind of thing.

I'd like to see if it would be easy to support ReST beside markdown. I'd like
to reuse my current files instead of trying to convert them haphazardly...

~~~
a3n
Coincidentally, I was just finishing up a simple reST wiki. It's literally
just a makefile and a couple conventions to follow.

[https://github.com/a3n/riki](https://github.com/a3n/riki)

As morantron says in
[https://news.ycombinator.com/item?id=13158062](https://news.ycombinator.com/item?id=13158062)

you can navigate from within your existing markupdown* files in Vim by putting
the cursor on the filename in your .md/.rst file, type gf, and Vim opens the
target file.

I wanted to be able to use the links that I was going to write anyway in my
.rst files, but they end in .html and when in vim you probably want to go to a
.rst source file.

So you write them ending in .rst, and the makefile fixes that up before giving
the file to rst2html. Proper nav within Vim and on the generated .html page.

Would work equally well with any capable programmer's editor that allows you
to "go to the file under the cursor."

------
YeGoblynQueenne
Is this substantially different than:

    
    
      a) writing a syntax highlighting script for your notes files,
      b) using tags to jump to documents and
      c) using netrw for browsing your files?
    

Because if it is not, and even if it is just making it easier to do those
things yourself, I would personally not even consider using it, having had
some really nasty surprises with Vim plugins in the past. Yes, I do mean you,
Powerline.

------
phaemon
I suppose it was taken, but "Viki" would have been so much better a name.

~~~
stewbrew
Viki/Deplate : A personal wiki for Vim
[http://www.vim.org/scripts/script.php?script_id=861](http://www.vim.org/scripts/script.php?script_id=861)

------
damaru
Funny, I just setup my vimwiki + syncthing yesterday night!

------
galfarragem
Is there something similar for Sublime Text?

~~~
desireco42
Actually there is. There is very neat solution whose name escapes me. It might
not have all the featured of VimWiki, but it had others that were as cool.

------
qwertyuiop924
...But it still can't match org.

Maybe in 10 years?

~~~
daenney
> ...But it still can't match org.

But you have to start somewhere.

> Maybe in 10 years?

Org mode has a 5 year advantage over vimwiki (2003 vs 2008) and significantly
more contributors. Vimwiki only seems to have had meaningful contributions
from others since Q3 2014 So maybe. Who knows.

~~~
moosingin3space
With vim's relatively high popularity over Emacs, I wouldn't be surprised if
vimwiki is able to match org within a few years.

~~~
zeveb
Ah, but that assumes popularity is all that matters. I think that emacs's
programming model and programming language are both superior to vim's, so it
wouldn't surprise me to see that it takes longer to implement the same
functionality with the same extensibility in vim than it would in emacs.

It also assumes that the average vim developer has roughly the same skill as
the average emacs developer. Is that true, though? Obviously I'm biased, but
it seems to me that emacs is far friendlier to the sort of user who demands
the ability to extend his environment as he wishes.

Which leads me to the question of whether as many vim users are also vim
developers, as emacs users are also emacs developers? I think that the former
is fairly uncommon, whilst the latter is fairly common. Sure, there _are_
emacs users who don't extend it, but my perception is that they are far rarer
than vim users who just use their editor.

~~~
moosingin3space
I'm an Emacs user, and I love it a lot. However, I do believe that the Vim
community has traditionally been more active with producing plugins.

~~~
zeveb
How so? Emacs has been extensible since it was written; vi wasn't until vim
came around, and writing extensions in vimscript is pretty brutal compared to
using elisp.

Does vim have an equivalent to gnus, magit, eww, erc, emms, slack-mode, info
&c.? Probably a few of those, but of the ones it has are they as mature?

