vim task plugin, help people practice GTD in their favorite editor
Vim script
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Basically, this is the TextMate Tasks Bundle port for Vim.


Vim-Task with Monaco font

Vim-Task with Monaco font

Vim-Task with Consolas font (which support bold & italic)

Vim-Task with Consolas font


Normal installation steps follow the vim tradition: download the zip/tar archive then copy all the directories/files to ~/.vim directory. You can download vim-task zip/tar archive by clicking the “Download Source” button in github.

You can also check out the latest code if you have git installed:

$ git clone git://
$ cd vim-task
$ rm README.mkd
$ cp -rv * ~/.vim

For those guys who use pathogen, the installation should be as simple as a git clone: $ cd ~/.vim/bundle $ git clone git://

unfortunately ftdetect directory seems not take effect in pathogen, I’m still wondering about why, but anyway here is a temporary workaround for now: $ mkdir -p ~/.vim/ftdetect $ cd ~/.vim/ftdetect $ ln -s ../bundle/vim-task/ftdetect/task.vim task.vim

Shortcut Key, Key Binding & Customization

By default, I mapped Ctrl+Command+Enter for toggling task status, you can simply remap to what’s the most comfortable for you:

inoremap <silent> <buffer> <C-D-CR> <ESC>:call Toggle_task_status()<CR>i
noremap <silent> <buffer> <C-D-CR> :call Toggle_task_status()<CR>

Note, if you find the key binding doesn’t work as expect, please make sure your vim instance was compiled with the +ruby feature.

$ vim --version | grep +ruby
-python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent

File Format & Syntax

The Tasks grammar and commands by default apply to file todo.txt and files with the .task and .tasks extensions. You can customize this by editing ftdetect/task.vim:

autocmd BufNewFile,BufRead todo.txt,*.task,*.tasks  setfiletype task

All the formats and syntax is similar with the TextMate Tasks bundle, I just quoted below for your references:

Headers end with a colon (“:”).
Pending (uncompleted) tasks start with a hyphen (“-”). Completed tasks start with a checkmark (“✓”).
Headers and tasks can be indented for grouping/hierarchy, as seen in the screenshot above. 

Bug & Feedback

Please report bugs and issues to github:, any feedback and suggestion is welcome and appreciated.