Skip to content

vim-scripts/ttodo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a mirror of http://www.vim.org/scripts/script.php?script_id=5262

This plugin provides the |:Ttodo| command that allow easy filtering and viewing 
of todo.txt files (see http://todotxt.com) via |tlib#input#List()|. The plugin 
supports:

    - search across multiple todo.txt files
    - filter tasks with specific tags, lists etc.
    - subtasks (outlines of complex tasks)
    - hide tasks until a threshold date
    - recurring tasks.

Examples: >

    " Show all tasks; default map (|g:ttodo_nmap|): <Leader>1
    :Ttodo

    " Show important tasks; default map (|g:ttodo_nmap_important|): <Leader>!
    :Ttodo!

    " Show tasks that are due in the next two weeks
    :Ttodo --due=2w

    " Show tasks with priorities A to C
    :Ttodo --pri=A-C

    " Show tasks matching @Test
    :Ttodo @Test

    " By default, |:Ttodo| scans the todo.txt files in |g:ttodo#dirs|. Users 
    " can also scan loaded buffers.
    " Show tasks in the current buffer
    :Ttodo --bufname=%

    " Command-line options can be collected in preference sets (see 
    " |g:ttodo#prefs|)
    :Ttodo --pref=work

In order to use this plugin as a ftplugin, users might also want to set 
|g:ttodo_enable_ftdetect| to 1 in their |vimrc| file.

If filetype is ttodo, the following default keymaps are enabled:

    <cr> ................. Add a new task;
                           if |g:ttodo#ftplugin#add_at_eof| is true, add the 
                           task at the end of file
    <c-cr> ............... Add a new task; copy any list and tags from the 
                           current task;
                           if |g:ttodo#ftplugin#add_at_eof| is true, add the 
                           task at the end of file
    <s-cr> ............... Add a new subtask
    <LocalLeader>tx ...... Mark "done"
    <LocalLeader>td ...... Mark due in N days
    <LocalLeader>tw ...... Mark due in N weeks
    <LocalLeader>tm ...... Mark due in N months
    <LocalLeader>ty ...... Set priority
    <LocalLeader>ta ...... Archive completed items
    <LocalLeader>tb ...... View, filter items in the current buffer
    <LocalLeader>tn ...... Add a note (the filename uses the first @list tag)
    <LocalLeader>ti ...... Add a hopefully unique ID (an Adler32 hash)

If filetype is ttodo, the following commands are supported:

    |:Ttodoarchive| ...... Archive completed tasks in the current buffer
    |:Ttodobuffer| ....... Show tasks in the current buffer only
    |:Ttodonote| ......... Add a new note to the task at the cursor
    |:Ttodosort| ......... Sort the tasks in the current buffer

As a ftplugin, ttodo supports the following syntax/extensions to todo.txt (see 
also https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format):

    (A) DATE TASK .... A priority as upper case letter (at the beginning of the 
                       line)
    DATE TASK ........ A pending task
    x DATE DATE TASK . A completed task (with completion date)
    indented tasks ... A indented task is a subtask of the parent task; unless 
                       `has_subtasks` is true, |:Ttodo| will only show tasks 
                       with no open subtasks; this is similar to how the 
                       outline addon handles subtasks (see also 
                       https://github.com/samuelsnyder/outline-todo.txt)

A TASK may contain the following tags:

    @list ............ a "list" tag
    +keyword ......... a "keyword" tag
    h:1 .............. hidden task
    due:YYYY-MM-DD ... due dates
    rec:+Nx .......... When marking a task a "done", add a new task with a due 
                       date in N d(ays), w(eeks), m(onths), y(ears); with the 
                       leading '+' use the original due date; else use the 
                       completion date; this is similar to how the Simpletask 
                       Android app handles `rec` tags
    t:YYYY-MM-DD ..... Hide the tasks until the given date
    t:-Nd ............ Hide the tasks until N days before the due date

Other ftplugin for todo.txt files, which can be used in conjunction with the 
ttodo plugin (if you don't want to use it's |ftplugin|), include:

    - https://github.com/freitass/todo.txt-vim
        - todo-txt.vim : Vim plugin for Todo.txt 
          https://github.com/dbeniamine/todo.txt-vim or
          http://www.vim.org/scripts/script.php?script_id=5134
    - https://github.com/mivok/vimtodo or
      http://www.vim.org/scripts/script.php?script_id=3264
    - https://github.com/davidoc/todo.txt-vim
        - My fork: https://github.com/tomtom/todo.txt-vim-1
    - https://github.com/dsiroky/vim-todotxt
    - ...

Related work:
    - https://github.com/elentok/todo.vim

About

View, sort, and filter todo.txt files

Resources

Stars

Watchers

Forks

Packages

No packages published