CLI config/dotfiles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

310 lines
9.8 KiB

  1. *taskpaper.txt* For Vim version 6.0 Last change: 2012 March 13
  2. David O'Callaghan <david.ocallaghan@cs.tcd.ie>
  3. 13th March 2012
  4. Introduction
  5. =============
  6. *taskpaper*
  7. *Latest version from https://github.com/davidoc/taskpaper.vim*
  8. From the TaskPaper website (<http://hogbaysoftware.com/projects/taskpaper>):
  9. "TaskPaper is a simple to-do list application that helps you stay
  10. organized. Unlike competing applications, TaskPaper is based on plain text
  11. files which offer you paper-like simplicity and ease of use."
  12. TaskPaper is a to-do list application for Mac OS X based on the "Getting
  13. Things Done" approach of David Allen (<http://www.davidco.com/>). It supports
  14. the GTD notions of projects, tasks and contexts.
  15. This package contains a syntax file and a file-type plugin for the simple
  16. format used by the TaskPaper application. It is intended for Mac users who
  17. want to edit their TaskPaper lists in Vim from time to time (for example, in
  18. a SSH session, or on a non-Mac system) and for anyone who is looking for a
  19. simple to-do list format.
  20. Installation
  21. =============
  22. *taskpaper-install*
  23. It should be safe to simply unpack the package into your .vim directory.
  24. It contains the following files:
  25. autoload/taskpaper.vim
  26. doc/example.taskpaper
  27. doc/taskpaper.txt
  28. doc/taskpaper_licence.txt
  29. ftdetect/taskpaper.vim
  30. ftplugin/taskpaper.vim
  31. syntax/taskpaper.vim
  32. To access this help file from within Vim you must first update your help
  33. tags:
  34. :helptags ~/.vim/doc
  35. The path may need to be modified depending on where you install to. Once
  36. you have done this you can access the help with this command:
  37. :help taskpaper
  38. Syntax
  39. =======
  40. *taskpaper-syntax*
  41. The syntax file highlights project headings and task contexts (tags), and
  42. "greys out" completed tasks. The exact style of the displayed file depends
  43. on your Vim colour scheme.
  44. A project heading is a piece of text ending in a colon.
  45. A task is a line beginning with a hyphen '-' and can have zero or more
  46. context tags.
  47. A context tag has the form "@tag".
  48. Other text is considered as a "note" and is displayed as a Vim comment.
  49. File-type Plugin
  50. =================
  51. *taskpaper-plugin*
  52. The file-type plugin tries to make editing TaskPaper files in Vim more
  53. comfortable.
  54. Vim can complete context names after the '@' using the keyword completion
  55. commands (e.g. Ctrl-X Ctrl-N).
  56. *taskpaper-mappings*
  57. The plugin defines some new mappings:
  58. \td Mark task as done
  59. \tx Mark task as cancelled
  60. \tt Mark task as today
  61. \tD Archive @done items
  62. \tX Show tasks marked as cancelled
  63. \tT Show tasks marked as today
  64. \t/ Search for items including keyword
  65. \ts Search for items including tag
  66. \tp Fold all projects
  67. \t. Fold all notes
  68. \tP Focus on the current project
  69. \tj Go to next project
  70. \tk Go to previous project
  71. \tg Go to specified project
  72. \tm Move task to specified project
  73. Note: if `<Leader>` has been changed (e.g. `:let mapleader=",,"`)
  74. then its value should be used instead of `\` in the mappings.
  75. Marking a task as done will add the "@done" context tag to the end of the
  76. task, and it will be greyed out by the syntax file.
  77. To show all tasks with a particular context tag, type `\ts` and a tag name to
  78. search. If you use the `\ts` command over the desired context tag, the tag
  79. name is set as default value. This will fold all the irrelevant tasks leaving
  80. only the tasks in the current context visible.
  81. To fold all top-level projects leaving only the headings visible use the `\tp`
  82. command. Standard fold commands can be used to open (`zo`) and close (`zc`)
  83. individual projects.
  84. To show all projects and tasks use the `zR` command. This disables folding so
  85. that the entire file is expanded.
  86. To go to next or previous project use the `\tj` command or `\tk` command. To
  87. go to a project you specify use the `\tg` command. You can complete project
  88. names with <Tab> on prompt.
  89. Configuration
  90. ==============
  91. *taskpaper-config*
  92. The plugin supports a number of configuration variables, which can be set in
  93. your .vimrc file.
  94. To change the default date format string used when marking a task complete,
  95. define the `task_paper_date_format` variable. The format matches your system's
  96. `strftime()` function.
  97. For example, to include the date and time in ISO8601 format:
  98. let g:task_paper_date_format = "%Y-%m-%dT%H:%M:%S%z"
  99. To change the default archive project name, define the
  100. `task_paper_archive_project` variable. The default value is "Archive".
  101. let g:task_paper_archive_project = "Archive"
  102. By default, when you move a task, the cursor will follow that task to its new
  103. location. To make the cursor stay in it's current location, change the
  104. `task_paper_follow_move` variable.
  105. let g:task_paper_follow_move = 0
  106. If you want to hide done tasks when searching you can change the
  107. `task_paper_search_hide_done` variable.
  108. let g:task_paper_search_hide_done = 1
  109. To set a custom style (colour, bold, etc.) for tags task_paper_styles variable,
  110. which is a dictionary.
  111. let g:task_paper_styles={'wait': 'ctermfg=Blue guifg=Blue', 'FAIL':
  112. 'ctermbg=Red guibg=Red'}
  113. See |highlight-args| for a full description of the syntax.
  114. File-type Detection
  115. ====================
  116. This package also contains a script to automatically use the TaskPaper file
  117. type for all files with the ".taskpaper" extension.
  118. Customize
  119. ==========
  120. *taskpaper-customize*
  121. You can create your own shortcut for tagging. To define your own shortcut,
  122. write settings in ~/.vim/ftplugin/taskpaper.vim or ~/.vimrc. If you use the
  123. .vimrc file, define settings like:
  124. function! s:taskpaper_setup()
  125. " Your settings
  126. nnoremap <buffer> <silent> <Leader>tn
  127. \ :<C-u>call taskpaper#toggle_tag('next', '')<CR>
  128. endfunction
  129. augroup vimrc-taskpaper
  130. autocmd!
  131. autocmd FileType taskpaper call s:taskpaper_setup()
  132. augroup END
  133. To add a tag without argument:
  134. nnoremap <buffer> <silent> <Leader>tn
  135. \ :<C-u>call taskpaper#add_tag('next', '')<CR>
  136. To delete a tag:
  137. nnoremap <buffer> <silent> <Leader>tN
  138. \ :<C-u>call taskpaper#delete_tag('next', '')<CR>
  139. To toggle a tag:
  140. nnoremap <buffer> <silent> <Leader>tn
  141. \ :<C-u>call taskpaper#toggle_tag('next', '')<CR>
  142. To add a tag with an argument:
  143. nnoremap <buffer> <silent> <Leader>tq
  144. \ :<C-u>call taskpaper#add_tag('priority')<CR>
  145. You can specify the priority value on prompt.
  146. To delete the priority tag with any argument:
  147. nnoremap <buffer> <silent> <Leader>tQ
  148. \ :<C-u>call taskpaper#delete_tag('priority', '')<CR>
  149. To delete only the level 1 of priority tag:
  150. nnoremap <buffer> <silent> <Leader>tQ
  151. \ :<C-u>call taskpaper#delete_tag('priority', '1')<CR>
  152. To toggle a tag with an argument:
  153. nnoremap <buffer> <silent> <Leader>tq
  154. \ :<C-u>call taskpaper#toggle_tag('priority')<CR>
  155. To update a tag (not delete if the tag exists):
  156. nnoremap <buffer> <silent> <Leader>tq
  157. \ :<C-u>call taskpaper#update_tag('priority')<CR>
  158. Licence
  159. ========
  160. *taskpaper-licence*
  161. Copyright (C) 2007--2012 by David O'Callaghan <david.ocallaghan@cs.tcd.ie>
  162. This program is free software; you can redistribute it and/or modify
  163. it under the terms of the GNU General Public License as published by
  164. the Free Software Foundation; either version 2 of the License, or
  165. (at your option) any later version.
  166. This program is distributed in the hope that it will be useful,
  167. but WITHOUT ANY WARRANTY; without even the implied warranty of
  168. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  169. GNU General Public License for more details.
  170. You should have received a copy of the GNU General Public License
  171. along with this program; if not, write to the Free Software
  172. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  173. Acknowledgements
  174. =================
  175. The initial version of the ToggleDone() function was based on SwitchBox()
  176. from the VimOutliner Checkboxes script written by Noel Henson (available
  177. from <http://www.vimoutliner.org>).
  178. Context folding expression was based on a snippet from Vim Tip 282
  179. (<http://vim.sourceforge.net/tips/tip.php?tip_id=282>).
  180. Thanks are due to a number of contributors who have supplied suggestions
  181. or patches to improve TaskPaper.vim:
  182. * Alexander Wodniok
  183. - hint to allow this file to be used as a help file
  184. * Ben Armstron
  185. - various fixes that make the scripts more robust
  186. - fix to show only complete tag matches
  187. - include `_` in contexts
  188. * Huahai Yang
  189. - fixed handling of indented tasks
  190. * Steve Audette
  191. - suggested change to folding
  192. * Andreas Kühntopf
  193. - display non-tasks as comments
  194. * Julien Blanchard (https://github.com/julienXX)
  195. - added ToggleCancelled
  196. * Robert James Kaes (https://github.com/rjkaes)
  197. - added task_paper_date_format
  198. * Adriano Castro (https://github.com/adrianocastro)
  199. - use tabs not spaces (noexpandtab)
  200. * Morgan Sutherland (https://github.com/msutherl)
  201. - Use <Leader> rather than <LocalLeader>
  202. - Start new task after <CR>
  203. * Matt Sacks (https://github.com/mattsa)
  204. - Optional (date) syntax for @done tasks
  205. - Add Tag command for add/removing tag
  206. - Fix lagging space after removing a tag
  207. - Better syntax
  208. * Anyakichi (https://github.com/anyakichi)
  209. - Add useful functions for users to define his own mappings easily
  210. - Add, delete, toggle, and update tags
  211. - Go previous or next project
  212. - Move projects, tasks and notes to another project
  213. - Search for keywords or tags with regexp
  214. - More compatible with HogBaySoftware's TaskPaper
  215. - Tag to projects and notes not only tasks
  216. - Shortcut to @today tag
  217. - Archiving done support
  218. - Multi-level folding of projects work perfectly
  219. - Add a new feature to fold only notes
  220. Contact
  221. ========
  222. The author of these Vim scripts is David O'Callaghan
  223. <david.ocallaghan@cs.tcd.ie>.
  224. For all information regarding the TaskPaper application itself please visit
  225. <http://hogbaysoftware.com/projects/taskpaper/>.