• Stars
    star
    553
  • Rank 80,147 (Top 2 %)
  • Language
    Vim Script
  • Created over 10 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Org-mode like task logging & time tracking in Vim

VIM Do Too v0.14.1.1 CircleCI

An awesome task manager & clocker inspired by org-mode written in pure viml.

Pre-requisites

It is recommended that you enable the vim setting 'hidden' which allows us to keep dotoo files hidden in the background for the purpose of showing accurate agenda information and also for faster updates to these files.

Getting Started

  1. Document Structure: The docment structure is borrowed from emacs' Org Mode.

    NOTE : Check out the file dotoo.dotoo in this repo as an example

    These are the dotoo document mappings :

    • gI: clock-in headline under cursor
    • gO: clock-out headline under cursor
    • gM: move headline under cursor to selected target
    • cit: change TODO of headline under cursor
    • cic: toggle checkbox under cursor
    • <C-A>: Increment date under cursor by 1 day, can be preceded with a [count]
    • <C-X>: Decrement date under cursor by 1 day, can be preceded with a [count]
    • <C-C><C-C>: Normalize a date (fixes day name if incorrect)
    • <Tab>: Cycle headline visibility similar to Org mode
    • <CR>: Follow link under cursor
    • <BS>: Go back to previous document after following a link

    The <C-X>, <C-A>, and cic commands all work with . if you have repeat.vim installed

    A few helpful :iabbrev:

    • :date: Enters the current date
    • :time: Enters the current time
    • :datetime: Enters the current date & time
  2. Agenda Views: You can have a look at the agenda views at anytime using the key binding gA, this displays the list of currently registered agenda views available, selecting one of them then opens up the view. The agenda views pulls information from agenda files, this can be configured by setting g:dotoo#agenda#files which is a list of file names / file blobs.

    These are the agenda view mappings common to all :

    • gq: quit agenda buffer
    • r: refresh agenda buffer (force reload / parse agenda files)
    • c: change TODO of headline under cursor
    • u: undo change in file of headline under the cursor
    • s: save all agenda files
    • C: trigger capture menu
    • i: clock-in for headline under cursor
    • o: clock-out for headline under cursor
    • m: Move headline to selected target
    • /: Filter by file, tags or todos
    • <CR>: Open headline under cursor & close agenda
    • <C-S>: Open headline under cursor in split
    • <C-T>: Open headline under cursor in tab
    • <C-V>: Open headline under cursor in vsplit
    • <Tab>: same as <C-V>
    1. Agenda View : This displays all TODOs that are nearing deadline. It provides a variety of mappings to manipulate the TODO items from the agenda view itself.

      These are mappings specific to agenda view:

      • f: go forward by 1 day
      • b: go backward by 1 day
      • .: go to today's date
      • S: Change agenda span to day, week or month
      • R: Report of clocking summary for the current span
    2. TODOs View : This displays all unscheduled TODO items from your agenda files.

    3. Refiles : This displays all headlines in the refile file that you should then move to an appropriate target file / project / headline.

    4. Notes : This displays all the notes from all the agenda files.

    5. Tagged : This lists all headlines that have tags.

    6. Search : This lists all headlines that match an input search term.

    7. Wiki : This lists all headlines that have notes in the path, assuming you manage notes in a notes folder that is under the agenda files path. This is better than Notes view since it does not require the presence of :NOTE: tag. If you just want to see everything in your knowledge base at a quick glance this is useful.

  3. Capture: This launches the capture menu that you can use to quickly capture TODOs, NOTES etc. This can be invoked using the keybinding gC from anywhere. The capture launches with a split window in select mode, you can just start typing to edit the capture. On saving the capture is then moved to the refile file, this can be configured using g:dotoo#capture#refile. You can always look at your refiles in the refiles view and move them to the desired target file / headline from there. Capture also clocks the tasks so you can log how much time was spent doing them by default, you can disable this behavior by setting let g:dotoo#capture#clock = 0.

Screenshots

  1. Agenda Menu -
  2. Agenda View -
  3. Agenda View with Log Summary -
  4. Todos View -
  5. Refile View -
  6. Notes View -

Screencast

https://www.youtube.com/watch?v=nsv33iOnH34

Credits

This plugin was inspired by the original emacs org-mode and the workflow described by Bernt Hansen at http://doc.norang.ca/org-mode.html.

I have taken bits of the syntax definitions & ideas from vim-orgmode

I will also like to shout out for bairui http://of-vim-and-vigor.blogspot.in/ who helped me a lot in building this.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

More Repositories

1

vim-table-mode

VIM Table Mode for instant table creation.
Vim Script
2,071
star
2

vim-prosession

Handle vim sessions like a pro
Vim Script
251
star
3

vim-zoom

Toggle zoom in / out individual windows (splits)
Vim Script
236
star
4

vim-open-url

A simple plugin for opening urls in browser
Vim Script
59
star
5

dotfiles

The single dot that has it all.
Emacs Lisp
57
star
6

vim-marp

Presentations from within VIM
Vim Script
28
star
7

vim-markify

VIM Plugin Markify to indicate quickfix results on buffers using Signs
Vim Script
24
star
8

url-mapper-rs

A simple URL Mapper service built using Rust
Rust
20
star
9

vim-buffer-history

A vim plugin to maintain a buffer jump history per window
Vim Script
19
star
10

vim-testify

Simplified viml testing
Vim Script
16
star
11

vim-pairify

A simplistic vim plugin to deal with pairs non-intrusively
Vim Script
14
star
12

soulmate_rails

Redis backed Rails Plugin for auto-completion
Ruby
13
star
13

comp

Go
6
star
14

packup

Minimal VIM plugin for automated package management
Vim Script
6
star
15

react-native-image-draw

TypeScript
5
star
16

cursed-timer

A Console Rubik Cube's Timer using tui-rs
Rust
4
star
17

rpicctv

RPi CCTV camera with Pan & Tilt controllable remotely via JSON API
Go
4
star
18

vim-github-review

Vim Script
3
star
19

convert_office_gem

Gem for converting documents from one format to another using the open office
Ruby
3
star
20

vim-audiobox

Control Rhythmbox from VIM
Vim Script
3
star
21

Ninjawords-Lookup

Ninjawords Lookup is an Extension for Google Chrome for performing quick and easy dictionary lookups from http://ninjawords.com/
JavaScript
3
star
22

webrtc-broadcast

Elixir
2
star
23

docker-attach

Examples demonstrating how to use docker attach
Makefile
2
star
24

httpcron

Cron with an HTTP API
Go
2
star
25

dumbhttp

Rust
2
star
26

vim-highlight-word

VIM Plugin for highlighting word under cursor
Vim Script
1
star
27

vim-comp

Vim Script
1
star
28

url-mapper

A simple keyword based url mapper
Go
1
star
29

hash-calculator

It calculates MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512 hash of input text or selected file.
Java
1
star