{"id":13898510,"url":"https://github.com/aserebryakov/vim-todo-lists","last_synced_at":"2025-07-17T15:33:48.964Z","repository":{"id":53053429,"uuid":"96107065","full_name":"aserebryakov/vim-todo-lists","owner":"aserebryakov","description":"Vim plugin for TODO lists","archived":false,"fork":false,"pushed_at":"2023-02-11T06:26:58.000Z","size":73,"stargazers_count":187,"open_issues_count":12,"forks_count":26,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-07T18:46:37.472Z","etag":null,"topics":["todo-list","vim-plugin","vim-plugins","viml"],"latest_commit_sha":null,"homepage":"https://vim.sourceforge.io/scripts/script.php?script_id=5588","language":"Vim script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aserebryakov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-03T12:11:42.000Z","updated_at":"2024-07-22T18:32:50.000Z","dependencies_parsed_at":"2022-09-04T08:31:03.694Z","dependency_job_id":null,"html_url":"https://github.com/aserebryakov/vim-todo-lists","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserebryakov%2Fvim-todo-lists","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserebryakov%2Fvim-todo-lists/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserebryakov%2Fvim-todo-lists/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aserebryakov%2Fvim-todo-lists/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aserebryakov","download_url":"https://codeload.github.com/aserebryakov/vim-todo-lists/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226274922,"owners_count":17598861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["todo-list","vim-plugin","vim-plugins","viml"],"created_at":"2024-08-06T18:04:19.839Z","updated_at":"2024-11-25T04:31:44.145Z","avatar_url":"https://github.com/aserebryakov.png","language":"Vim script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"vim-todo-lists\n==============\n\n**vim-todo-lists** is a Vim plugin for TODO lists management.\n\nInstallation\n------------\n\n#### Install vim-todo-lists\n\n##### Pathogen\n\n    $ cd ~/.vim/bundle\n    $ git clone https://github.com/aserebryakov/vim-todo-lists.git\n\n##### NeoBundle\n\n    NeoBundle 'aserebryakov/vim-todo-lists'\n\n##### Without plugin manager\n\nClone or download this repository and copy its contents to your `~/.vim/`\ndirectory.\n\nUsage\n-----\n\nPlugin is automatically applied for files with `.todo.md` extension.\n\n##### TODO Items\n\nThe following example represents TODO items definition by default.\n\n###### Example\n\n```\n- [ ] Not done\n- [X] Done\n```\n\n###### Custom Configuration\n\nYou can customize the representation of the item by defining the following variables\nto your `.vimrc`\n\n```\nlet g:VimTodoListsUndoneItem = '- [X]'\nlet g:VimTodoListsDoneItem = '- [V]'\n```\n\n###### Important Item\n\nImportant item is defined as `undone item string !`.\n\n```\n- [ ] ! Important item\n```\n\n##### Items Hierarchy\n\nIf one item has lesser indentation than the next one then the first one is meant\nto be **parent** and the second to be **child**.\n\n###### Example\n\n```\n- [ ] Parent\n  - [ ] Child1\n  - [ ] Child2\n```\n\n###### Rules:\n\n* Changing state of the parent item changes the state of all children items accordantly\n* If all children items are marked done, parent will also be marked as done\n* If parent is marked as done and one of the children changes state to not done\n  parent will also be marked as not done\n\n##### Items Highlighting\n\nItems are highlighted in accordance to the following scheme:\n\n```\n- [ ] ! Important item (Underlined)\n- [ ] Normal item (Normal)\n- [X] Done item (Comment)\n```\n\n##### Items moving on state change\n\nBy default item when its status is changed is moved in the list in accordance\nto the following rules\n\n###### Mark item done\n\nItem marked as done is moved to the end of all done items list.\nIf done list doesn't exist, item is placed just after the last not done item.\n\n*Before*\n\n```\n- [ ] Not Done 1\n- [ ] Will be done now\n- [ ] Not Done 2\n- [X] Done\n```\n\n*After*\n\n```\n- [ ] Not Done 1\n- [ ] Not Done 2\n- [X] Done\n- [X] Will be done now\n```\n\n###### Mark item undone\n\nUndone item is moved to the end of all not done items list.\nIf all items are marked done, the items is moved before the first done item.\n\n*Before*\n\n```\n- [ ] Not Done 1\n- [ ] Not Done 2\n- [X] Done\n- [X] Will be undone now\n```\n*After*\n\n```\n- [ ] Not Done 1\n- [ ] Not Done 2\n- [ ] Will be done now\n- [X] Done\n```\n\n###### Interaction with items hierarchy\n\nThis feature also affect the items in hierarchy in accordance to the rules above.\n\n###### Disable the items moving\n\nIf you don't want items to be moved after state change, you may add the following\nline into your `.vimrc` file:\n\n```\nlet g:VimTodoListsMoveItems = 0\n```\n\n##### Commands\n\n* `:VimTodoListsCreateNewItemAbove` - creates a new item in a line above cursor\n* `:VimTodoListsCreateNewItemBelow` - creates a new item in a line below cursor\n* `:VimTodoListsCreateNewItem`      - creates a new item in current line\n* `:VimTodoListsGoToNextItem`       - go to the next item\n* `:VimTodoListsGoToPreviousItem`   - go to the previous item\n* `:VimTodoListsToggleItem`         - toggles the current item (or selected items in visual mode)\n* `:VimTodoListsIncreaseIndent`     - increases the indent of current line\n* `:VimTodoListsDecreaseIndent`     - decreases the indent of current line\n\n##### Default key mappings\n\n###### Item editing mode\n\n* `j` - go to next item\n* `k` - go to previous item\n* `O` - create new item above the cursor\n* `o` - create new item below the cursor\n* `\u003cSpace\u003e` - toggle current item\n* `\u003cCR\u003e` - create new item in `insert mode`\n* `\u003cTab\u003e` - increases the indent of current (or selected) line(s)\n* `\u003cShift-Tab\u003e` - decreases the indent of current (or selected) line(s)\n* `\u003cleader\u003ee` - switch to normal editing mode\n\n###### Normal editing mode\n\n* `j`, `k`, `o`, `O`, `\u003cCR\u003e` - no special behavior\n* `\u003cSpace\u003e` - toggle current item\n* `\u003cleader\u003ee` - switch to item editing mode\n\n##### Custom key mappings\n\nThe `g:VimTodoListsCustomKeyMapper` variable should contain a name of the function\nimplementing custom mappings.\n\n###### Example\n\n```\nlet g:VimTodoListsCustomKeyMapper = 'VimTodoListsCustomMappings'\n\nfunction! VimTodoListsCustomMappings()\n  nnoremap \u003cbuffer\u003e s :VimTodoListsToggleItem\u003cCR\u003e\n  nnoremap \u003cbuffer\u003e \u003cSpace\u003e :VimTodoListsToggleItem\u003cCR\u003e\n  noremap \u003cbuffer\u003e \u003cleader\u003ee :silent call VimTodoListsSetItemMode()\u003cCR\u003e\nendfunction\n```\n\n##### Automatic date insertion\n\nAutomatic date insertion may be enabled by setting the following in `.vimrc`:\n\n```\nlet g:VimTodoListsDatesEnabled = 1\n```\n\nDate format may be changed by setting the format variable to a valid\n`strftime()` string:\n\n```\nlet g:VimTodoListsDatesFormat = \"%a %b, %Y\"\n```\n\nContribution\n------------\n\nSource code and issues are hosted on GitHub:\n\n    https://github.com/aserebryakov/vim-todo-lists\n\nIf you are going to make a pull request, you should use `dev` branch for\nfunctionality implementation to simplify the merge procedure.\n\nLicense\n-------\n\n[MIT License](https://opensource.org/licenses/MIT)\n\nChangelog\n---------\n\n#### 0.8.0\n\n**Breaking Change**\n\n* Added option to configure TODO items\n* File extension changed to `.todo.md` from `.todo`\n* Item indentation level is kept when creating a new one\n* Removed migration from older formats\n* Added plugin initialization for `todo` filetype\n* New item can be created with keypad Enter key\n* Makes normal mode keys more consistent\n\n#### 0.7.1\n\n* Syntax highlight is fixed\n\n#### 0.7.0\n\n* Added automatic date insertion feature\n* Added mappings for fast increasing/decreasing indent\n* Items list are made markdown compatible (old files are updated automatically on load)\n\n#### 0.6.0\n\n* Added items moving on state change\n\n#### 0.5.1\n\n* Fixed the annoying noise when navigating over items in default mode\n* Fixed the cursor position after the item is toggled\n\n#### 0.5.0\n\n* Added items highlighting\n\n#### 0.4.0\n\n* Added items hierarchy support\n\n#### 0.3.0\n\n* Added items toggling in visual mode\n* Improves work with indentations of list items\n* Fixed the error when trying to navigate the buffer that doesn't contain items\n\n#### 0.2.0\n\n* Added an option to configure custom key mappings\n\n#### 0.1.1\n\n* Fixes broken compatibility with the [filestyle](https://github.com/aserebryakov/filestyle) plugin\n\n#### 0.1.0\n\n* Navigation in TODO list\n* Adding new items\n* Items toggling\n\nContributors\n------------\n\n* Alexander Serebryakov, author ([GitHub](https://github.com/aserebryakov))\n* Jake Mason, contributor ([GitHub](https://github.com/jakemason))\n* Alexandr Kondratev, contributor ([GitHub](https://github.com/theg4sh))\n* Jannis Jorre, contributor ([GitHub](https://github.com/jeyj0))\n* thehunmonkgroup, contributor ([GitHub](https://github.com/thehunmonkgroup))\n* Suchandra Thapa, contributor ([GitHub](https://github.com/sthapa))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faserebryakov%2Fvim-todo-lists","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faserebryakov%2Fvim-todo-lists","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faserebryakov%2Fvim-todo-lists/lists"}