Hacker News new | ask | show | jobs
by adrianrocamora 2584 days ago
Since I can't control the mouse so well anymore due to health reasons I grew to hate Kanban boards and Trello. Nowadays, the following goes into my init.vim along with vimwiki and it has made my work much more enjoyable :)

""" KANBAN BOARD

" Close board tab

map <leader>bc :tabclose<CR>

" Main board: soon, doing, today, done

map <leader>bb :tabnew /media/datanix/code/mdwiki/wiki/kanban/soon.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/doing.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/today.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/done.md<CR>

" Full board: triage, later, soon, doing, today, done, archive

map <leader>bf :tabnew /media/datanix/code/mdwiki/wiki/kanban/triage.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/later.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/soon.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/doing.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/today.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/done.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/archive.md<CR>

" Triage board: triage, later, soon, doing

map <leader>bt :tabnew /media/datanix/code/mdwiki/wiki/kanban/triage.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/later.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/soon.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/doing.md<CR>

" Archiving board: done, archive

map <leader>ba :tabnew /media/datanix/code/mdwiki/wiki/kanban/done.md<CR>:vnew /media/datanix/code/mdwiki/wiki/kanban/archive.md<CR>

1 comments

I loved this but wanted to generalize it a bit to clean it up and make it portable across different computers.

By no means am I a vimscript expert so any improvements welcome. (I've defined g:settings.kanban_board_path above).

    function! g:Kanban_file(stage)
        return g:settings.kanban_board_path . a:stage
    endfunction

    let $KBsoon=g:Kanban_file('soon.md')
    let $KBdoing=g:Kanban_file('doing.md')
    let $KBtoday=g:Kanban_file('today.md')
    let $KBdone=g:Kanban_file('done.md')
    let $KBarchive=g:Kanban_file('archive.md')
    " Close board tab

    map <leader>bc :tabclose<CR>

    " Main board: soon, doing, today, done

    map <leader>bb :tabnew $KBsoon<CR>:vnew $KBdoing<CR>:vnew $KBtoday<CR>:vnew $KBdone<CR>

    ...
Lovely, it was a bit of a hack I came up with that I was trying out, but your cleaned up version makes it look wonderful so into my init.vim it goes! Thanks :)