Simple TODO list plugin for Vim, inspired by
I was using workflowy for a long time, then picked up vim and after learning some basic usage I decided it was the superior way to edit text and navigate documents.
I wanted the same navigation in workflowy, so I looked around and found vimflowy Initially I wanted to use vimflowy and implement additional functionality there, but I gave up on the idea.
I used workflowy tags with dates to mark due dates and search engine to display
tasks to be done for particular days. Typing whole #2017-05-08 is a pain in the ass,
so I wanted shortcuts (something like today which would get translated to #YYYY-MM-DD format)
I turned towards workflowish ! And decided to fiddle with vim to get something done that would fit my needs :)
To make this work like workflowy in vim you only have to learn to work with vim folding and vimgrep and quickfix...
Thanks to the long running tradition, workflowish files have .wofl extension.
- searching (Vim is pretty good at it)
- deleting (as above)
- split windows in vim makes it easy to organize big lists
- vimgrep for filtering lines
- folding and a
zoom/focusmodezqto focus on current item / toggle offzpmove focus to parent itemzatoggles folding. See Vim wiki: Folding
- convert from workflowy plain text export
- in a
.woflfile or after:set ft=workflowish, run:call workflowish#convert_from_workflowy()to convert the whole buffer
- in a
- vimgrep shortcut (
:G) that greps current buffer, based on a great plugin VimGrepBuffer - notes (just add
\in the beginning of the line to start a comment) - todos:
- a todo which is not completed is a line which starts with
* - completed todo starts with a
- :Done/:Dcommand marks line as done (changes first character to-):Task/:Tcommand marks line as task (changes first character to+):Note/:WNcommand marks line as regular dot (changes first character to*)
- a todo which is not completed is a line which starts with
this is the basic convention: task date is marked by tags in #YYYY-MM-DD format
shortcut commands for NORMAL mode:
:Today adds current date #YYYY-MM-DD tag at the end of current line
:Tomorrow adds tomorrow #YYYY-MM-DD tag at the end of current line
:Do <offset> adds a #YYYY-MM-DD for today + (note, if offset is '-1' it will add yesterday's date)
:Undo/:U removes #YYYY-MM-DD from the end of current line
:TodoToday/:TT uses :G to look for #YYYY-MM-DD tags for current date
:TodoTomorrow/:TTr uses :G to look for #YYYY-MM-DD tags for date of next day
:Todo <offset> uses :G to look for #YYYY-MM-DD tags for date offset by from today
Projects are dots which have a dot and their first child (the line directly below them without any notes) is + actions.
Project actions are dots that are direct childs of the + actions. Actions marked by - are considered done.
:Awill show all not done actions per project (first project name, then actions):Pwill show all projects
Use Tim Pope's Pathogen. or vim plug
This is not necessary for most users, but if you're a perfectionist you can do it. Add this to your .vimrc to fix an edge-case with folding single-items:
autocmd BufWinLeave *.wofl mkview
autocmd BufWinEnter *.wofl silent loadview
MIT (c)