Skip to content
Mappings to manage GitHub-like task lists
Vim script
Branch: master
Clone or download
vitalk Merge pull request #36 from yosh-se/master
leader key clarification
Latest commit 4acb068 May 30, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Added a new <Plug> simple-todo-new-list-item-start-of-line Feb 24, 2017
plugin s/get_list_marker/list_symbol/g Mar 3, 2017
.gitignore do not add help tags to the repository Apr 12, 2014 leader key clarification May 30, 2017

Simple todo in Vim

Maybe this is the smallest Vim plugin in the world. It adds some useful mappings for manage simple todo lists (example below) and nothing more.

[x] Create plugin
[x] Add helpful documentation
[x] Publish to GitHub
[ ] Spread the word


  • Support GitHub-like task lists:

    • Works well with different markdown list markers, e.g. -, +, *.
    • So it’s easy to create tasks in issues or pull requests on GitHub
  • Visually selected tasks can be processed at once.

  • Each mapping is repeatable via . (require tpope/repeat).

  • Tick symbol is configurable, e.g.

    [y] Water
    [y] Bread
    [ ] Milk


Use your favorite installation method:

  • Tim Pope’s pathogen:

    cd ~/.vim/bundle
    git clone
  • Junegunn Choi’s Plug (recommend):

    Plug 'vitalk/vim-simple-todo'
    vim +PlugInstall +qall


All this mappings use the <leader> key and they work the same on NORMAL, VISUAL and INSERT modes. The default <leader> is backslash (\), but I prefer to use the comma as the <leader> key but feel free to set your own.

Key Help
<leader>i Create a new todo under cursor
<leader>I Create a new todo for current line
<leader>o Create a new todo below current line
<leader>O Create a new todo above current line
<leader>x Mark todo under cursor as done
<leader>X Mark todo as undone
<leader>s Switch todo status for current line

Or even remap them to somethings more comfortable for you:

# Disable default key bindings
let g:simple_todo_map_keys = 0

# Map your keys
nmap <c-i> <Plug>(simple-todo-new)
imap <c-i> <Plug>(simple-todo-new)
# ...etc.

See :help simple-todo-maps for list of available mappings.

You can also change the tick symbol to something else. Default is x.

let g:simple_todo_tick_symbol = 'y'


Don’t hesitate to open GitHub Issues for any bug or suggestions.


Copyright © 2012 Vital Kudzelka. Use it for Good not Evil.

Distributed under the MIT license.

You can’t perform that action at this time.