You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
303 lines
9.6 KiB
Plaintext
303 lines
9.6 KiB
Plaintext
taskpaper.txt For Vim version 6.0 Last change: 2012 March 13
|
|
|
|
David O'Callaghan <david.ocallaghan@cs.tcd.ie>
|
|
|
|
13th March 2012
|
|
|
|
Introduction
|
|
=============
|
|
|
|
*Latest version from https://github.com/davidoc/taskpaper.vim*
|
|
|
|
From the TaskPaper website (<http://hogbaysoftware.com/projects/taskpaper>):
|
|
|
|
"TaskPaper is a simple to-do list application that helps you stay
|
|
organized. Unlike competing applications, TaskPaper is based on plain text
|
|
files which offer you paper-like simplicity and ease of use."
|
|
|
|
TaskPaper is a to-do list application for Mac OS X based on the "Getting
|
|
Things Done" approach of David Allen (<http://www.davidco.com/>). It supports
|
|
the GTD notions of projects, tasks and contexts.
|
|
|
|
This package contains a syntax file and a file-type plugin for the simple
|
|
format used by the TaskPaper application. It is intended for Mac users who
|
|
want to edit their TaskPaper lists in Vim from time to time (for example, in
|
|
a SSH session, or on a non-Mac system) and for anyone who is looking for a
|
|
simple to-do list format.
|
|
|
|
Installation
|
|
=============
|
|
|
|
It should be safe to simply unpack the package into your .vim directory.
|
|
It contains the following files:
|
|
|
|
autoload/taskpaper.vim
|
|
doc/example.taskpaper
|
|
doc/taskpaper.txt
|
|
doc/taskpaper_licence.txt
|
|
ftdetect/taskpaper.vim
|
|
ftplugin/taskpaper.vim
|
|
syntax/taskpaper.vim
|
|
|
|
To access this help file from within Vim you must first update your help
|
|
tags:
|
|
|
|
:helptags ~/.vim/doc
|
|
|
|
The path may need to be modified depending on where you install to. Once
|
|
you have done this you can access the help with this command:
|
|
|
|
:help taskpaper
|
|
|
|
Syntax
|
|
=======
|
|
|
|
The syntax file highlights project headings and task contexts (tags), and
|
|
"greys out" completed tasks. The exact style of the displayed file depends
|
|
on your Vim colour scheme.
|
|
|
|
A project heading is a piece of text ending in a colon.
|
|
|
|
A task is a line beginning with a hyphen '-' and can have zero or more
|
|
context tags.
|
|
|
|
A context tag has the form "@tag".
|
|
|
|
Other text is considered as a "note" and is displayed as a Vim comment.
|
|
|
|
File-type Plugin
|
|
=================
|
|
|
|
The file-type plugin tries to make editing TaskPaper files in Vim more
|
|
comfortable.
|
|
|
|
Vim can complete context names after the '@' using the keyword completion
|
|
commands (e.g. Ctrl-X Ctrl-N).
|
|
|
|
The plugin defines some new mappings:
|
|
|
|
\td Mark task as done
|
|
\tx Mark task as cancelled
|
|
\tt Mark task as today
|
|
\tD Archive @done items
|
|
\tX Show tasks marked as cancelled
|
|
\tT Show tasks marked as today
|
|
\t/ Search for items including keyword
|
|
\ts Search for items including tag
|
|
\tp Fold all projects
|
|
\t. Fold all notes
|
|
\tP Focus on the current project
|
|
\tj Go to next project
|
|
\tk Go to previous project
|
|
\tg Go to specified project
|
|
\tm Move task to specified project
|
|
|
|
Note: if `<Leader>` has been changed (e.g. `:let mapleader=",,"`)
|
|
then its value should be used instead of `\` in the mappings.
|
|
|
|
Marking a task as done will add the "@done" context tag to the end of the
|
|
task, and it will be greyed out by the syntax file.
|
|
|
|
To show all tasks with a particular context tag, type `\ts` and a tag name to
|
|
search. If you use the `\ts` command over the desired context tag, the tag
|
|
name is set as default value. This will fold all the irrelevant tasks leaving
|
|
only the tasks in the current context visible.
|
|
|
|
To fold all top-level projects leaving only the headings visible use the `\tp`
|
|
command. Standard fold commands can be used to open (`zo`) and close (`zc`)
|
|
individual projects.
|
|
|
|
To show all projects and tasks use the `zR` command. This disables folding so
|
|
that the entire file is expanded.
|
|
|
|
To go to next or previous project use the `\tj` command or `\tk` command. To
|
|
go to a project you specify use the `\tg` command. You can complete project
|
|
names with <Tab> on prompt.
|
|
|
|
Configuration
|
|
==============
|
|
|
|
The plugin supports a number of configuration variables, which can be set in
|
|
your .vimrc file.
|
|
|
|
To change the default date format string used when marking a task complete,
|
|
define the `task_paper_date_format` variable. The format matches your system's
|
|
`strftime()` function.
|
|
|
|
For example, to include the date and time in ISO8601 format:
|
|
|
|
let g:task_paper_date_format = "%Y-%m-%dT%H:%M:%S%z"
|
|
|
|
To change the default archive project name, define the
|
|
`task_paper_archive_project` variable. The default value is "Archive".
|
|
|
|
let g:task_paper_archive_project = "Archive"
|
|
|
|
By default, when you move a task, the cursor will follow that task to its new
|
|
location. To make the cursor stay in it's current location, change the
|
|
`task_paper_follow_move` variable.
|
|
|
|
let g:task_paper_follow_move = 0
|
|
|
|
If you want to hide done tasks when searching you can change the
|
|
`task_paper_search_hide_done` variable.
|
|
|
|
let g:task_paper_search_hide_done = 1
|
|
|
|
To set a custom style (colour, bold, etc.) for tags task_paper_styles variable,
|
|
which is a dictionary.
|
|
|
|
let g:task_paper_styles={'wait': 'ctermfg=Blue guifg=Blue', 'FAIL':
|
|
'ctermbg=Red guibg=Red'}
|
|
|
|
See |highlight-args| for a full description of the syntax.
|
|
|
|
|
|
File-type Detection
|
|
====================
|
|
|
|
This package also contains a script to automatically use the TaskPaper file
|
|
type for all files with the ".taskpaper" extension.
|
|
|
|
Customize
|
|
==========
|
|
|
|
You can create your own shortcut for tagging. To define your own shortcut,
|
|
write settings in ~/.vim/ftplugin/taskpaper.vim or ~/.vimrc. If you use the
|
|
.vimrc file, define settings like:
|
|
|
|
function! s:taskpaper_setup()
|
|
" Your settings
|
|
nnoremap <buffer> <silent> <Leader>tn
|
|
\ :<C-u>call taskpaper#toggle_tag('next', '')<CR>
|
|
endfunction
|
|
|
|
augroup vimrc-taskpaper
|
|
autocmd!
|
|
autocmd FileType taskpaper call s:taskpaper_setup()
|
|
augroup END
|
|
|
|
To add a tag without argument:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tn
|
|
\ :<C-u>call taskpaper#add_tag('next', '')<CR>
|
|
|
|
To delete a tag:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tN
|
|
\ :<C-u>call taskpaper#delete_tag('next', '')<CR>
|
|
|
|
To toggle a tag:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tn
|
|
\ :<C-u>call taskpaper#toggle_tag('next', '')<CR>
|
|
|
|
To add a tag with an argument:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tq
|
|
\ :<C-u>call taskpaper#add_tag('priority')<CR>
|
|
|
|
You can specify the priority value on prompt.
|
|
|
|
To delete the priority tag with any argument:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tQ
|
|
\ :<C-u>call taskpaper#delete_tag('priority', '')<CR>
|
|
|
|
To delete only the level 1 of priority tag:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tQ
|
|
\ :<C-u>call taskpaper#delete_tag('priority', '1')<CR>
|
|
|
|
To toggle a tag with an argument:
|
|
|
|
nnoremap <buffer> <silent> <Leader>tq
|
|
\ :<C-u>call taskpaper#toggle_tag('priority')<CR>
|
|
|
|
To update a tag (not delete if the tag exists):
|
|
|
|
nnoremap <buffer> <silent> <Leader>tq
|
|
\ :<C-u>call taskpaper#update_tag('priority')<CR>
|
|
|
|
Licence
|
|
========
|
|
|
|
Copyright (C) 2007--2012 by David O'Callaghan <david.ocallaghan@cs.tcd.ie>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
Acknowledgements
|
|
=================
|
|
|
|
The initial version of the ToggleDone() function was based on SwitchBox()
|
|
from the VimOutliner Checkboxes script written by Noel Henson (available
|
|
from <http://www.vimoutliner.org>).
|
|
|
|
Context folding expression was based on a snippet from Vim Tip 282
|
|
(<http://vim.sourceforge.net/tips/tip.php?tip_id=282>).
|
|
|
|
Thanks are due to a number of contributors who have supplied suggestions
|
|
or patches to improve TaskPaper.vim:
|
|
|
|
* Alexander Wodniok
|
|
- hint to allow this file to be used as a help file
|
|
* Ben Armstron
|
|
- various fixes that make the scripts more robust
|
|
- fix to show only complete tag matches
|
|
- include `_` in contexts
|
|
* Huahai Yang
|
|
- fixed handling of indented tasks
|
|
* Steve Audette
|
|
- suggested change to folding
|
|
* Andreas Kühntopf
|
|
- display non-tasks as comments
|
|
* Julien Blanchard (https://github.com/julienXX)
|
|
- added ToggleCancelled
|
|
* Robert James Kaes (https://github.com/rjkaes)
|
|
- added task_paper_date_format
|
|
* Adriano Castro (https://github.com/adrianocastro)
|
|
- use tabs not spaces (noexpandtab)
|
|
* Morgan Sutherland (https://github.com/msutherl)
|
|
- Use <Leader> rather than <LocalLeader>
|
|
- Start new task after <CR>
|
|
* Matt Sacks (https://github.com/mattsa)
|
|
- Optional (date) syntax for @done tasks
|
|
- Add Tag command for add/removing tag
|
|
- Fix lagging space after removing a tag
|
|
- Better syntax
|
|
* Anyakichi (https://github.com/anyakichi)
|
|
- Add useful functions for users to define his own mappings easily
|
|
- Add, delete, toggle, and update tags
|
|
- Go previous or next project
|
|
- Move projects, tasks and notes to another project
|
|
- Search for keywords or tags with regexp
|
|
- More compatible with HogBaySoftware's TaskPaper
|
|
- Tag to projects and notes not only tasks
|
|
- Shortcut to @today tag
|
|
- Archiving done support
|
|
- Multi-level folding of projects work perfectly
|
|
- Add a new feature to fold only notes
|
|
|
|
|
|
|
|
Contact
|
|
========
|
|
|
|
The author of these Vim scripts is David O'Callaghan
|
|
<david.ocallaghan@cs.tcd.ie>.
|
|
|
|
For all information regarding the TaskPaper application itself please visit
|
|
<http://hogbaysoftware.com/projects/taskpaper/>.
|