All Projects → davidoc → Taskpaper.vim

davidoc / Taskpaper.vim

This package contains a syntax file and a file-type plugin for the simple format used by the TaskPaper application.

Labels

Projects that are alternatives of or similar to Taskpaper.vim

Vim Language Server
VImScript language server, LSP for vim script
Stars: ✭ 264 (-18.77%)
Mutual labels:  viml
Vim Stylus
Syntax Highlighting for Stylus
Stars: ✭ 277 (-14.77%)
Mutual labels:  viml
Vim Buffet
IDE-like Vim tabline
Stars: ✭ 304 (-6.46%)
Mutual labels:  viml
Vim Tomorrow Theme
Tomorrow Theme for Vim
Stars: ✭ 269 (-17.23%)
Mutual labels:  viml
Dotfiles
My config files
Stars: ✭ 276 (-15.08%)
Mutual labels:  viml
Elm.vim
Vim plugin for the Elm programming language
Stars: ✭ 286 (-12%)
Mutual labels:  viml
Vim Rubocop
The Vim RuboCop plugin runs RuboCop and displays the results in Vim
Stars: ✭ 262 (-19.38%)
Mutual labels:  viml
Molokai
Molokai color scheme for Vim
Stars: ✭ 3,349 (+930.46%)
Mutual labels:  viml
Vim Powerline
Moved to powerline/powerline.
Stars: ✭ 2,880 (+786.15%)
Mutual labels:  viml
Vim Phpqa
PHP QA tools for Vim
Stars: ✭ 296 (-8.92%)
Mutual labels:  viml
Vim Hemisu
A Vim color scheme with dark and light variants
Stars: ✭ 271 (-16.62%)
Mutual labels:  viml
Dotfiles
twerth
Stars: ✭ 274 (-15.69%)
Mutual labels:  viml
Rust.vim
Vim support for Rust file detection and syntax highlighting.
Stars: ✭ 288 (-11.38%)
Mutual labels:  viml
Jshint2.vim
Lightweight, customizable and functional Vim plugin for JSHint integration.
Stars: ✭ 265 (-18.46%)
Mutual labels:  viml
Vim Config
my vim config to share amongst my machines
Stars: ✭ 312 (-4%)
Mutual labels:  viml
Vim Smooth Scroll
Make scrolling in Vim more pleasant
Stars: ✭ 262 (-19.38%)
Mutual labels:  viml
Investigate.vim
A Vim plugin for looking up documentation
Stars: ✭ 282 (-13.23%)
Mutual labels:  viml
Vim Textobj Rubyblock
A custom text object for selecting ruby blocks.
Stars: ✭ 321 (-1.23%)
Mutual labels:  viml
Vim Dadbod Ui
Simple UI for https://github.com/tpope/vim-dadbod
Stars: ✭ 315 (-3.08%)
Mutual labels:  viml
Blamer.nvim
A git blame plugin for neovim inspired by VS Code's GitLens plugin
Stars: ✭ 283 (-12.92%)
Mutual labels:  viml

taskpaper.txt For Vim version 6.0 Last change: 2012 March 13

David O'Callaghan [email protected]

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 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 [email protected]

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 rather than
    • Start new task after
  • 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 [email protected].

For all information regarding the TaskPaper application itself please visit http://hogbaysoftware.com/projects/taskpaper/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].