mirror of
https://github.com/tbabej/taskwiki.git
synced 2025-08-18 21:33:07 +02:00
398 lines
15 KiB
Text
398 lines
15 KiB
Text
*taskwiki.txt* Taskwarrior tasks in Vimwiki v0.8.4 ~
|
|
_____ _ __ ___ _ _ ~
|
|
a |_ _|_ _ ___| | _\ \ / (_) | _(_) a ~
|
|
command-line | |/ _` / __| |/ /\ \ /\ / /| | |/ / | personal wiki ~
|
|
todo list | | (_| \__ \ < \ V V / | | <| | for vim ~
|
|
manager |_|\__,_|___/_|\_\ \_/\_/ |_|_|\_\_| ~
|
|
~
|
|
==============================================================================
|
|
QUICK-REFERENCE -- use "<leader>t" and one of: -- *taskwiki-quickref*
|
|
|
|
| a annotate | C calendar | Ga ghistory annual | p projects |
|
|
| bd burndown daily | d done | hm history month | s summary |
|
|
| bw burndown weekly | D delete | ha history annual | S stats |
|
|
| bm burndown monthly | e edit | i (or <CR>) info | t tags |
|
|
| cp choose project | g grid | l back-link | + start |
|
|
| ct choose tag | Gm ghistory month | m modify | - stop |
|
|
|
|
==============================================================================
|
|
CONTENTS *taskwiki-contents*
|
|
|
|
1. Introduction |taskwiki|
|
|
2. Requirements |taskwiki-requires|
|
|
3. Installing |taskwiki-install|
|
|
4. Mapping |taskwiki-mapping|
|
|
5. Commands |taskwiki-commands|
|
|
6. Settings |taskwiki-settings|
|
|
7. Troubleshooting |taskwiki-trouble|
|
|
8. Contributing |taskwiki-contribute|
|
|
9. Credits |taskwiki-credits|
|
|
10. License |taskwiki-license|
|
|
|
|
=============================================================================
|
|
1. INTRODUCTION *taskwiki*
|
|
|
|
TaskWiki is a vim plugin that enhances vimwiki (another vim plugin) by adding
|
|
Taskwarrior tasks, reports and commands, to Vimwiki's todo functionality.
|
|
|
|
Key Features:
|
|
- ViewPorts: a vimwiki header with a task query (filter) embedded, generates
|
|
a corresponding list of tasks. These tasks can be modified and changes
|
|
will be synced back to task data. A ViewPort header looks like this:
|
|
|
|
== Project Foo Tasks | +PENDING project:foo | +bar pri:H ==
|
|
title ^^^ filter ^^^ ^^^ user defaults
|
|
|
|
title can be any text, and the filter elements are concealed in normal mode.
|
|
|
|
Defaults for new tasks added under a ViewPort are derived from the filter
|
|
(where possible) and from user-defaults (if any)
|
|
Only simpler elements will work as defaults defaults to new tasks:
|
|
- attribute:value (project:foo)
|
|
- +tag
|
|
Complex filter elements, or dates, like these, will _not_ be used:
|
|
- nothing with attribute modifiers (project.not:foo)
|
|
- due: sched: wait: until: values (?)
|
|
- nothing in parentheses (project:foo or project:bar)
|
|
- no negative tags (-foo)
|
|
- no virtual tags (+PENDING +TODAY +OVERDUE etc.)
|
|
User-defaults will be added to, and can override, filter-defaults.
|
|
To see ViewPort details, like defaults used, <CR> with cursor on VP header
|
|
|
|
- Individual Todos: tasks can be used anywhere in a vimwiki, looking like:
|
|
|
|
~ * [ ] Install TaskWiki plugin
|
|
and when adding a new task, any other metadata can be added after "--" like
|
|
~ * [ ] test taskwiki todos and viewports -- proj:tw.wiki +foo due:tomorrow
|
|
|
|
Task are synced with the task data on file open and on saving. After sync,
|
|
all tasks end with a concealed uuid (eg. #541c5b57) don't edit this!
|
|
|
|
NOTE: vimwiki todos can still be used along side of taskwiki tasks, as long
|
|
as the leading character is "-" or "#." or "+" but not "*".
|
|
- [ ] This is a vimwiki todo (ignored by taskwiki)
|
|
|
|
- Task Info: hitting <CR> with the cursor over a task shows all task info.
|
|
|
|
- Reports: burndown, calendar, history, projects, summary, stats and tags
|
|
reports can all be invoked, opening in a split window.
|
|
|
|
- Grid view: the :TaskWikiGrid command will open a new buffer with a grid
|
|
view of task details, of the nearest ViewPort (using vim-taskwarrior)
|
|
|
|
- Back-links: The command :TaskWikiLink will add an annotation to the selected
|
|
task(s) with the ~/path/to/file.wiki
|
|
|
|
- Tests: TaskWiki is well tested in development to ensure data integrity.
|
|
**DISCLAIMER** This is free software, it comes with absolutely NO
|
|
warranty and no promise of fitness for any purpose! (back up your data!)
|
|
|
|
=============================================================================
|
|
2. REQUIREMENTS *taskwiki-requires*
|
|
|
|
* Vim 7.4 or newer, compiled with +python
|
|
* [Vimwiki](https://github.com/vimwiki/vimwiki/tree/dev) (the dev branch)
|
|
|
|
git clone https://github.com/vimwiki/vimwiki ~/.vim/bundle/ --branch dev
|
|
|
|
* [Taskwarrior](http://taskwarrior.org) (version 2.4.0 or newer)
|
|
- install either from [sources](http://taskwarrior.org/download/)
|
|
or using your [package manager](http://taskwarrior.org/download/#dist)
|
|
|
|
sudo dnf install task
|
|
|
|
* [tasklib](https://github.com/tbabej/tasklib/tree/develop) (the develop branch)
|
|
- Python library for Taskwarrior.
|
|
|
|
sudo pip install --upgrade git+git://github.com/tbabej/tasklib@develop
|
|
|
|
Taskwiki will automatically check whether the Vim and tasklib versions are
|
|
sufficient, and raise error if not.
|
|
|
|
=============================================================================
|
|
3. INSTALLING *taskwiki-install*
|
|
|
|
- plugins the vim way: http://vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4
|
|
- plugins the easy way: https://github.com/tpope/vim-pathogen
|
|
Other "vim plugin managers" will probably work, but have not been tested
|
|
|
|
=============================================================================
|
|
4. MAPPING *taskwiki-mapping*
|
|
|
|
n <CR> is mapped to show task info, VP details or follow vimwiki link
|
|
After editing a task in insert mode, <CR> starts a new task
|
|
|
|
Normal mode key mappings (those with "v" also work in visual mode)
|
|
<Leader>t +
|
|
vn a |:TaskWikiAnnotate|
|
|
n bd |:TaskWikiBurndownDaily|
|
|
n bw |:TaskWikiBurndownWeekly|
|
|
n bm |:TaskWikiBurndownMonthly|
|
|
vn cp |:TaskWikiChooseProject|
|
|
vn ct |:TaskWikiChooseTag|
|
|
n C |:TaskWikiCalendar|
|
|
vn d |:TaskWikiDone|
|
|
vn D |:TaskWikiDelete|
|
|
vn e |:TaskWikiEdit|
|
|
vn g |:TaskWikiGrid|
|
|
n Gm |:TaskWikiGhistoryMonthly|
|
|
n Ga |:TaskWikiGhistoryAnnual|
|
|
n hm |:TaskWikiHistoryMonthly|
|
|
n ha |:TaskWikiHistoryAnnual|
|
|
vn i |:TaskWikiInfo|
|
|
vn l |:TaskWikiLink|
|
|
vn m |:TaskWikiMod|
|
|
n p |:TaskWikiProjects|
|
|
n s |:TaskWikiProjectsSummary|
|
|
n S |:TaskWikiStats|
|
|
n t |:TaskWikiTags|
|
|
vn + |:TaskWikiStart|
|
|
vn - |:TaskWikiStop|
|
|
|
|
=============================================================================
|
|
5. COMMANDS *taskwiki-commands*
|
|
|
|
-----------------------------------------------------------------------------
|
|
Split reports commands.
|
|
|
|
This family of commands displays TaskWarrior reports in a read-only
|
|
vertical/horizontal split. Size of these splits can be limited,
|
|
see |taskwiki_max_split_height| and |taskwiki_max_split_width| options.
|
|
|
|
These commands will by default use filter from the nearest viewport. If you
|
|
want to display report window using global, non-filtered data, explicitly
|
|
pass the 'global' argument, i.e:
|
|
|
|
:TaskWikiStats global
|
|
|
|
To specify an explicit filter, you can use the filter as the argument, i.e:
|
|
|
|
:TaskWikiStats project:Home
|
|
|
|
To close the split windows, just hit <CR> or "q".
|
|
|
|
NOTE: To allow color output in the split windows, make sure you have AnsiEsc
|
|
vim plugin installed, see |taskwiki-optional|.
|
|
|
|
List of split report commands:
|
|
|
|
*:TaskWikiBurndownDaily* [args]
|
|
*:TaskWikiBurndownWeekly* [args]
|
|
*:TaskWikiBurndownMonthly* [args]
|
|
Opens a horizontal split window with the burndown report.
|
|
|
|
*:TaskWikiCalendar* [args]
|
|
Opens a horizontal split window with the calendar report.
|
|
|
|
*:TaskWikiGhistoryMonthly* [args]
|
|
*:TaskWikiGhistoryAnnual* [args]
|
|
Opens a horizontal split window with the ghistory report.
|
|
|
|
*:TaskWikiHistoryMonthly* [args]
|
|
*:TaskWikiHistoryAnnual* [args]
|
|
Opens a horizontal split window with the history report.
|
|
|
|
*:TaskWikiProjects* [args]
|
|
Opens a vertical split window with the projects report.
|
|
|
|
*:TaskWikiProjectsSummary* [args]
|
|
Opens a vertical split window with the summary report.
|
|
|
|
*:TaskWikiStats* [args]
|
|
Opens a vertical split window with the stats report.
|
|
|
|
*:TaskWikiTags* [args]
|
|
Opens a vertical split window with the tags report.
|
|
|
|
-----------------------------------------------------------------------------
|
|
Commands operating on selected tasks.
|
|
|
|
This group of commands operates on a selected tasks. Selected tasks can be
|
|
either the task which is currently under cursor, or any group of visually
|
|
selected tasks.
|
|
|
|
*:TaskWikiAnnotate*
|
|
Opens a prompt to add annotation to selected task(s).
|
|
|
|
*:TaskWikiDone*
|
|
Marks the selected task(s) as completed.
|
|
|
|
*:TaskWikiDelete*
|
|
Deletes the selected task(s). Removes them from the file.
|
|
|
|
*:TaskWikiEdit*
|
|
Opens the task in a separate vim instance using 'task edit'.
|
|
|
|
*:TaskWikiGrid*
|
|
Opens a new buffer with the selected ViewPort displayed as a grid.
|
|
Requires vim-taskwarrior plugin, see |taskwiki-optional|.
|
|
|
|
*:TaskWikiInfo* (or <CR> over a task)
|
|
Opens a split window with the info report of task under the cursor. To
|
|
close the split, use "q" or <CR>.
|
|
|
|
NOTE: This split can have very big height for tasks with many past
|
|
modifications. See |taskwiki_split_max_height|.
|
|
|
|
*:TaskWikiLink*
|
|
Adds an annotation to selected task(s) with ~/path/to/file.wiki.
|
|
|
|
*:TaskWikiStart*
|
|
"Starts" the selected task(s).
|
|
|
|
*:TaskWikiStop*
|
|
"Stops" the selected task(s).
|
|
|
|
*:TaskWikiMod* [mods]
|
|
Opens a prompt for task modification, for selected task(s).
|
|
|
|
----------------------------------------------------------------------------
|
|
Interactive commands.
|
|
|
|
Following commands work similiarly as the previous group, they can operate
|
|
on selected tasks. The modification is done via choosing the particular
|
|
modification (project, tag) in a split window.
|
|
|
|
*:TaskWikiChooseProject*
|
|
Interactively choose project for selected task(s) by hitting <CR> over the
|
|
desired value in the split window. Use "q" to close the split, without
|
|
performing any modifications.
|
|
|
|
*:TaskWikiChooseTag*
|
|
Interactively choose tag for selected task(s) by hitting <CR> over the
|
|
desired value in the split window. Use "q" to close the split, without
|
|
performing any modifications.
|
|
|
|
----------------------------------------------------------------------------
|
|
Meta commands
|
|
|
|
This group of commands is directly related to taskwiki or taskwiki specific
|
|
constructs.
|
|
|
|
*:TaskWikiBufferLoad*
|
|
Updates the tasks from the Taskwarrior database. This command is run
|
|
automatically when the taskwiki file is opened.
|
|
|
|
*:TaskWikiBufferSave*
|
|
Saves the changes to the Taskwarrior database. This parses and saves all
|
|
the buffer-only changes (such as changing the description, or due date).
|
|
This command is run automatically when the taskwiki file is saved.
|
|
|
|
NOTE: Using commands such as |:TaskWikiDone| or |:TaskWikiMod| will save
|
|
the modifications both in the buffer and the Taskwarrior database.
|
|
|
|
*:TaskWikiInspect* (or <CR> over a viewport)
|
|
Opens a split window with details of viewport under the cursor. To
|
|
close the split, use "q" or <CR>.
|
|
|
|
=============================================================================
|
|
6. SETTINGS *taskwiki-settings*
|
|
|
|
*taskwiki_taskrc_location*
|
|
The location of the taskrc file used by taskwiki. Defaults to ~/.taskrc.
|
|
|
|
*taskwiki_data_location*
|
|
The location of the data directory for taskwarrior data used by taskwiki.
|
|
Defaults to ~/.task.
|
|
|
|
*taskwiki_extra_warriors*
|
|
A dictionary containing alternative taskwarrior instance definitions.
|
|
|
|
A key for any alternative taskwarrior definition must be a single,
|
|
uppercase letter. Value is dictionary containing respective
|
|
data_location and taskrc_location overrides.
|
|
|
|
Example:
|
|
let g:taskwiki_extra_warriors={'H': {'data_location': '/home/tbabej/.habit/', 'taskrc_location': '/home/tbabej/.habitrc'}
|
|
|
|
Specifying particular extra warrior in the viewport can be done using
|
|
#[KEY] at the end of the viewport definition, in this case:
|
|
|
|
~ === Home habits | project:Home #H ===
|
|
|
|
*taskwiki_sort_order*
|
|
The default sort order used to sort the tasks within viewports. Defaults
|
|
to 'due+,pri-,project+'. Expects a comma-separated list of attributes,
|
|
optionally followed by + or - to denote the increasing or decreasing
|
|
order, respectively.
|
|
|
|
*taskwiki_sort_orders*
|
|
The sort order can also be customized per viewport. This configuration
|
|
variable stores a dictionary with the alternative sort order definitions,
|
|
each indexed by a uppercase letter.
|
|
|
|
Example:
|
|
let g:taskwiki_sort_orders={"T": "project+,due-"}
|
|
|
|
Specifying a particular sort order in the viewport can be achieved
|
|
using $[KEY] at the end of the viewport definition, in this case:
|
|
|
|
~ === Work tasks by decreased due, grouped by project | project:Work $T ===
|
|
|
|
*taskwiki_split_max_width*
|
|
Use to limit the width of any vertical split created by taskwiki.
|
|
|
|
*taskwiki_split_max_height*
|
|
Use to limit the height of any vertical split created by taskwiki.
|
|
|
|
*taskwiki_source_tw_colors*
|
|
If set, taskwiki will try to use the same colors for task highlighting
|
|
as those defined in taskwarrior.
|
|
|
|
*taskwiki_disable*
|
|
Setting any value for this variable will disable taskwiki.
|
|
|
|
*taskwiki_measure_coverage*
|
|
Development only. Uses python-coverage to track how much of the code
|
|
is covered by tests.
|
|
|
|
|
|
=============================================================================
|
|
7. TROUBLESHOOTING *taskwiki-trouble*
|
|
Are requirements met?
|
|
-Vim
|
|
-TaskWiki (this plugin)
|
|
-Taskwarrior
|
|
-Tasklib
|
|
-vim-taskwarrior
|
|
|
|
=============================================================================
|
|
8. CONTRIBUTIONS *taskwiki-contribute*
|
|
|
|
Clone, fork, contribute and learn more at https://github.com/tbabej/taskwiki
|
|
Good ideas, well formed bug reports and thoughtful pull-requests welcome.
|
|
|
|
=============================================================================
|
|
9. CREDITS *taskwiki-credits*
|
|
|
|
Authored by Tomas Babej
|
|
inspired by vimwiki-tasks
|
|
|
|
=============================================================================
|
|
10. LICENSE *taskwiki-license*
|
|
|
|
Copyright 2014-2015 Tomas Babej
|
|
http://github.com/tbabej/taskwiki
|
|
|
|
This software is released under MIT licence.
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
a copy of this software and associated documentation files (the
|
|
"Software"), to deal in the Software without restriction, including
|
|
without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to
|
|
permit persons to whom the Software is furnished to do so, subject to
|
|
the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
vim:tw=78:ts=8:ft=help
|