DEV Community

Cover image for Todolist no vim
Neni
Neni

Posted on • Updated on

Todolist no vim

Explicações sobre meu "fluxo de todolist" com vim

Objetivos:

Facilidade

  • Todas tarefas que não foram concluídas ficam em um arquivo BACKLOG (concluídas em outro DONE)
  • Cada linha que possui TODO é uma tarefa por fazer
  • Cada linha que possui WAIT é uma tarefa delegada ou pausada
  • Demais linhas não são importantes
  • A listagem é criada com :lvimgrep buscando por \C\<TODO\> e/ou \C\<WAIT\> e exibida com :lli, não necessitando abrir o arquivo de tarefas

demonstração

Visualizar todolist com :lli e selecionar se for preciso com :ll <numero>

Simplicidade

  • Comandos:
    • :TodoList abstrai o :lvimgrep e de bônus formata module e pattern do :lli
    • :TodoListFileBacklog e :TodoListFileDone acessar os arquivos com as tarefas
    • <leader>o lista os comandos anteriores e outros futuros que podem ser criados
  • Para mudar status de uma tarefa (TODO e WAIT) basta apagar a palavra na linha (possui highlight)
  • Uma tarefa é concluída saindo do arquivo de backlog

demonstração

Gerar a lista TODO a partir do texto TODO ou WAIT inserido em linhas do arquivo com :lvimgrep

Ignore - [ ] pois é uma implementação antiga de checkbox, durante o post explico melhor

demonstração

Remover da todolist apagando TODO ou WAIT

demonstração

Possuir arquivos BACKLOG e DONE e acessar facilmente os mesmos

Escopo

  • BACKLOG possui fold no primeiro nível de indentação, permitindo separação simples de projeto (não subprojetos). Ex.:
projeto 1
    Projeto XYZ

    = fazer x
    = fazer y
    = fazer z

projeto 2
    Projeto ABC

    = fazer a
    = fazer b
    = fazer c
Enter fullscreen mode Exit fullscreen mode

demonstração

Concluir itens de escopo com checkbox e conceal

Listas

  • BACKLOG possui syntax com uso de conceal
    • - converte para um bullet comum
    • = converte para um checkbox desmarcado
    • + converte para um checkbox marcado
  • Por que -, = e +?
    • - igual ao markdown
    • = e + conceal de 1 carácter é mais agradável que - [ ] ou - [x] pois é mais fácil de entender o tamanho da linha.

Quando se edita uma linha com carácter escondido ele pode reaparecer quando 1) passa o cursor na linha ou 2) entra no modo insert na linha. É mais agradável evitar o efeito do "texto se expandido", pois o conceal (que sempre é 1 carácter) se transforma em outro carácter

  • <C-SPACE> (crlspace) marca ou desmarca checkbox. Caso não exista um, é criado desmarcado

Consequências não planejadas

  • Para manter a listagem :lli simples, tanto o projeto quanto o item devem ser objetivos

Código

Top comments (2)

Collapse
 
christianmlima profile image
christianmlima

Nice, faz uma versão em inglês!

Collapse
 
nenitf profile image
Neni

Hmmm n tinha pensado nisso, mt boa ideia