Vimwiki é um plugin para facilitar criação e edição de arquivos, tentando diminuir ao máximo o atrito entre navegar, criar e atualizar documentos de tarefas. Ele é utilizavel para criação de wikis pessoais ou diário (que não deixa de ser uma wiki). Utilizo-o diariamente no trabalho em uma wiki separada da seguinte maneira:
- Inicio o dia abrindo meu diário do dia anterior
leader-w-leader-ye falo sobre na daily. A teclaleaderé definição pessoal, utilizo espaço - Faço um split
:splite crio o documento do dia atualleader-w-leader-w - Movo os itens não concluidos ontem para hoje e/ou adiciono tarefas novas
- Mantenho um padrão de escrita que não conflite sobre uma tarefa feita ou não, exemplos:
- Para uma tarefa realizada eu não escrevo
fiz pr do ticket X, mas simpr do ticket X - para uma tarefa que irei realizar não escrevo
vou fazer o pr do ticket Xe muito menosfazer o pr do ticket X. Utilizo a mesma estrutura anterior:pr do ticket X
- Para uma tarefa realizada eu não escrevo
- Os itens são listas
- [ ], cujo podem ser marcados ou desmarcados comctrl-space - Ao final dia faço um resumo em
retro.wiki
Tarefas complexas
Quando o ticket é longo ou faço questão de documentá-lo, crio um um arquivo com nome de seu id dentro do diário. Assim centralizo informaçoes e tarefas do ticket mas separo o que pretendo fazer hoje.
- [X] criação do ambiente [[XXXXXXXXX]]
- [ ] investigação do erro de envio de email [[YYYYYYYYY]]
- [ ] documentação do endpoint abcdefg [[ZZZZZZZZZ]]
[[arquivo]]é a representação de um link para umarquivo.wiki. Basta apertar enter tanto para criá-lo quanto acessá-lo.
Retro e brag document
Ao final do dia confirmo o que foi feito e no arquivo que registro as retros faço um relato sobre como foi o dia: dificuldades, conquistas e sentimento geral do dia. Normalmente crio um arquivo por sprint.
💚 MUITO BOM
🔵 OK
⚠️ ESTRANHO, SITUAÇÃO PODE FICAR PIORAR
🔴 RUIM
❌ NÃO FIZ
| data | ❓ | relato | sprint |
|----------------|----|---------------------------------------------------------------------|--------|
| [[2023-07-31]] | 🔵 | Desenvolvimento dos tickets com a orientação adequada | 2 |
| [[2023-07-28]] | ⚠️ | Muitos alinhamentos sobre os tickets, não consegui iniciar nenhum | 2 |
| [[2023-07-27]] | 🔵 | Reuniões de inicio de sprint, planning ok | 2 |
| [[2023-07-26]] | ❌ | | 1 |
| [[2023-07-25]] | 💚 | Finalizei as demandas, documentações pendentes e revisei todos PRs | 1 |
| [[2023-07-24]] | 🔵 | Obtive a orientação adequada e estou motivado a finalizar a demanda | 1 |
| [[2023-07-21]] | 🔴 | Não consegui suprir nenhuma das demandas | 1 |
Vimwiki tem um comando para criar tabelas de maneira dinamica (
:VimwikiTable) e juntamente comtabmantém corretamente os espaçamentos
Deixo o arquivo
retro_1.wikidentro da pasta de diário para ter um link com as datas ([[2023-07-21]])
A ideia do registro é atacar 2 frentes: facilitar na retro e sprint review; montar um brag document
Benefícios
- Daily direto ao ponto
- Organização pessoal com multiplas sub tarefas
- Orientação do dia com senso de progresso
Dicas
Navegação
tabeshift-tabpula entre linksenteracessa arquivo do link ou cria-o se necessáriobackspaceretorna para o arquivo anterior antes do pulo do link- Utilize folds para facilitar a leitura:
zMfecha todoszRabre todoszjezknavega entre folds
Utilitários
leader-w-cno modoVisualpermite colorirglxanula um checkboxglrem uma lista ordenada, atualiza os numeros:VimwikiRebuildTagse:VimwikiGenerateTagLinks TODO STARTED XXX<CR>listará as tags:TODO::STARTED:etc no arquivo:ts TODOlista referencias da tag:TODO::VWS :TODO:também pesquisa na quickfix list:VWBgera backlinks, listando todos arquivos que referenciam o buffer abertoVgqadequa a seleção de linhas de acordo comtextwidth, removendo ou criando
Minhas configurações (em Lua)
local function wiki(opts)
return vim.tbl_deep_extend('force', {
syntax = 'default',
ext = 'wiki',
index = 'index',
auto_diary_index = 1,
auto_tags = 1, -- muito bugado, linkando paginas em branco
auto_generate_tags = 1,
exclude_files = { 'index.wiki', '_diary/*', 'diary/*', 'old/**', 'priv/**' },
}, opts)
end
vim.g.vimwiki_list = {
wiki {
name = 'pkm',
diary_rel_path = "_diary",
path = '~/vimwiki/pkm',
auto_generate_links = 1,
generated_links_caption = 1,
rx_todo = [[\C\%(\<TODO\>\|\<DONE\>\|\<THANKS\>\|\<FIXME\>\|\<CUIDADO\>\|????\|!!!!\)]],
},
wiki {
name = 'wtf',
path = '~/dev/blog/wtf',
rx_todo = [[\C\%(\<TODO\>\|\<DONE\>\|\<THANKS\>\|\<FIXME\>\|\<CUIDADO\>\|????\|!!!!\)]],
index = 'README',
ext = '.md',
syntax = 'markdown',
},
wiki {
name = 'trampo',
path = '~/vimwiki/trampo',
rx_todo = [[\C\%(\<COP\>\|\<CALL\>\|\<TODO\>\|\<BACKLOG\>\|\<RELEASE\>\|\<DONE\>\|\<FLAKY\>\|\<STARTED\>\|\<FIXME\>\|\<FIXED\>\|\<MERGE\>\|\<MY REVIEW\>\|\<PRFIX\>\|\<WAIT QA\>\|\<WAIT\>\|\<BUG\>\|\<NEW\>\|\<REVIEW\>\|\<PR\>\|\<QA\>\|\<P:\>\|\<R:\>\|???\)]],
},
wiki {
name = 'sideproject',
path = '~/vimwiki/sideproject',
rx_todo = [[\C\<\%(TODO\|DONE\|STARTED\|FIXME\|FIXED\|WAIT\)\>]],
},
}
vim.g.vimwiki_folding = 'expr'
vim.g.vimwiki_auto_chdir = 1
vim.g.vimwiki_links_header = "Links"
vim.g.vimwiki_tags_header = "Tags"
vim.g.vimwiki_markdown_link_ext = 1
FAQ
- O plugin tem suporte a
.md, por que usar.wiki? R: Pela facilidade de navegação de[[]], export para html existente com:VimwikiAll2HTMLe backlinks com:VWB - Quais outros usos do vimwiki além de trabalho? Wiki pessoal (substituindo Notion), wiki de livros lidos (substituindo blogs)