Vimflowy is a Google Chrom{e,ium} extension that brings the goodness of (super-basic) Vim navigation into the wonderful online listiness of Workflowy! It does not do anything fancy, it just provides some convenient Workflowy key bindings that might be more convenient to people who have Vim built into their motor system. It exists because I found myself typing jjjjj
and/or ending up in the search box after pressing <Esc>
one too many times.
If you like Vimflowy, please let me know! I'm curious to see how "niche" this actually is. :)
- Movement
j
: Move down one itemk
: Move up one itemh
: Move cursor leftl
: Move cursor rightw
: Move one word forwardb
: Move one work back
- Insertion
i
: Enter Insert modea
: Enter Insert mode (same asi
for now)O
: Create a new bullet point before current item and enter Insert modeo
: Create a new bullet point after current item and enter Insert modeI
: Enter Insert mode at beginning of lineA
: Enter Insert mode at end of line
- Other
x
: Delete character before cursoru
: Undo<Ctrl>r
: Redo
<Esc>
: Enter Normal mode- More soon, hopefully!
Vimflowy also adds some extra key bindings for common Workflowy tasks that work in both normal and insert modes. Other than <Esc>
to search, all of Workflowy's built-in shortcuts are still available as well.
<Alt>l
: Zoom into current list item<Alt>h
: Zoom out of current list<Alt><Shift>l
: Indent current item<Alt><Shift>h
: Dedent current item<Alt><Shift>k
: Move current item up<Alt><Shift>j
: Move current item down
If you're using Vimium (or any other Chrome extensions that install modal keybindings), make sure you add http*://*.workflowy.com/*
to the excluded URLs.
Personally, I like to run Workflowy in Chromium's app mode: i.e. chromium --app="https://workflowy.com"
.
AKA things I hope I can fix soon, or things that anyone else is welcome to fix!
- Chrome keybindings (e.g., close/open tab) don't work in Normal mode.
- There is currently no search shortcut.
- Support for key sequences would be pretty sweet, but I still need to work out conflicts with other bindings.