[HN Gopher] Vimflowy
       ___________________________________________________________________
        
       Vimflowy
        
       Author : smusamashah
       Score  : 159 points
       Date   : 2020-11-04 16:48 UTC (6 hours ago)
        
 (HTM) web link (vimflowy.netlify.app)
 (TXT) w3m dump (vimflowy.netlify.app)
        
       | basil wrote:
       | Some of the most complete Vim keybindings I've experienced in
       | something that isn't Vim.
       | 
       | I love that visual character/line/block selection works. It's the
       | first thing I test in any kind of Vim emulation.
        
       | St-Clock wrote:
       | Didn't read anything at first, just went and
       | navigated/manipulated text and it worked as I would expect! This
       | is a very nice VIM emulation!
       | 
       | I stopped using workflowy because it did not feel natural to edit
       | a large amount of plain text outside of VIM.
        
       | SatvikBeri wrote:
       | A similar tool with more features and partial vim binds is
       | Checkvist, which I use (www.checkvist.com). I've been happily
       | using it for 7 years now.
        
       | awake wrote:
       | looooove this. any chance we could express "select inner word",
       | for example `viw` or `vaw`.
        
       | Slackwise wrote:
       | Eh, I've been using https://quire.io for Flowy-like task
       | management for my team and it's been great.
       | 
       | Relevant here as it has single-key shortcuts for actions and is
       | an infinitely nested task list, but unlike Flowy, works way
       | better for _teams_ , with GitHub integration, etc.
        
         | keorn wrote:
         | This post about their GitHub integration makes me chuckle,
         | written by someone who heard GitHub is used for "codes":
         | https://quire.io/blog/p/Hello-GitHub-We-are-Quire.html
         | 
         | "For some of you, it is difficult enough to keep everyone up to
         | date with the tasks at hand. It is even more so when they
         | involve codes. Lots of codes."
         | 
         | "refer and trace back between tasks and codes"
        
       | rav wrote:
       | Just like any other sort-of-Vim implementation, cw (change word)
       | is made to be consistent with dw (delete word), and Y (yank line)
       | is made to be consistent with D (delete line). In classic vi,
       | these commands are illogical in that cw doesn't eat the space
       | following the word like dw does, and Y works on the entire line,
       | whereas D deletes only from the cursor to the end of the line.
       | The Vim manual states that:                    If you like "Y" to
       | work from the cursor to the end of line (which is more logical,
       | but not Vi-compatible) use ":map Y y$".
       | 
       | ...however, I'm used do cw and Y being illogical like that,
       | goshdarnit, so when these Vim-clones come along and "fix" it, I'm
       | thrown off at every step I take.
        
         | timoth wrote:
         | Interesting. I never use Y or D, I use yy and dd which both
         | operate on the entire line. I like that they're lower case and
         | 'fit' in my mind with their other 2 character counterparts, yw,
         | dw etc. (and I use d$ for delete to end of line).
        
         | v-yadli wrote:
         | I usually think of cw vs. dw as changing the data in a node vs.
         | removing a node (together with its next pointer), in a linked
         | list.
        
         | boogies wrote:
         | Not _every_ sort-of-Vim implementation (ofc). I use vis1, which
         | has the classic cw, but the consistent Y.
         | 
         | And I prefer it the vis way. cw is a binding I use often, and
         | more pleasant to type than ce. yy I also use fairly frequently,
         | but Y is not much more pleasant, and y$ is much less pleasant,
         | and I copy from the cursor to the line end often enough to want
         | it to be easy, quick, and feel nice.
         | 
         | 1: https://sr.ht/martanne/vis/
        
         | krick wrote:
         | I have absolutely no idea what people are talking about in this
         | thread. I never noticed any of this, and even went right now to
         | test it on Vim 8.0, and nothing of what you are saying seems to
         | be correct. I have quite a big .vimrc, but I don't think I re-
         | configured any of this. Maybe all of it applies only to vi, not
         | vim?
        
         | darrenf wrote:
         | I've never found the cw/dw case illogical. When I'm deleting a
         | "word" (in prose or code) it's rarely, perhaps never, my
         | intention to leave a double space between the surrounding
         | words. But if I am _changing_ one, the likelihood is that I'll
         | want to trailing space to remain after I type the replacement.
         | 
         | So whilst I see nothing illogical, I'm in agreement that a
         | change to these commands would throw me!
        
           | ysavir wrote:
           | It's practical, but it's not logically consistent with what's
           | considered a "word" in Vim. "Delete word" and "Delete until
           | next word" are two different functionalities, so there's an
           | inconsistency when a function shortcut is named to represent
           | the former, but behaves like the latter.
        
           | wraithy wrote:
           | There's always "ce" (change until end of word), which enables
           | the common use case and is also consistent with the rest of
           | the vim language.
           | 
           | I wonder why the special case for "cw" exists... I'd love to
           | hear the story about that initial decision.
        
             | boogies wrote:
             | I'd guess just because cw is much easier/faster to type
             | (because c and e are pressed with the same finger) on a
             | QWERTY keyboard.
        
             | kps wrote:
             | `cw` and `ce` don't do the same thing if you're on the last
             | character of the word.
        
       | lol768 wrote:
       | This had polluted my browser history to the point I couldn't even
       | see HN after a few minutes of expanding bullets and playing about
       | with it :(
       | 
       | Why are people so tempted to do this?
        
       | detcader wrote:
       | oh man this is nuts. thank you. the copy and settings UI is so
       | well done compared to what I see on average! I would pay for a
       | browser New Tab version of this (if one doesn't exist already--
       | you seem to have thought of everything!)
        
       | jessep wrote:
       | Nice! I'm founder of workflowy and this is indeed very cool.*
       | I've often thought about a vim-like navigation mode for jumping
       | around.
       | 
       | * https://workflowy.com in case you aren't familiar
        
         | bachmeier wrote:
         | Your site doesn't provide any information about price or
         | features. It just drops a box in front of me to enter my email
         | address - not exactly the most effective way to turn me into a
         | customer. I might give you my email only to find out that the
         | "free" plan is very limited, you lock my data in your garden,
         | and upgrading to a real plan is really expensive.
        
           | jessep wrote:
           | Yeah, we're going to address this. A/B tests and metrics
           | guided us to this (it converts better), and I don't know why
           | the minimal-information thing has worked well for us, maybe
           | it forces people to try it out. I think some of it has to do
           | with the fact that most of it is just word of mouth, and
           | probably our attempts at more information weren't well done.
           | 
           | We're working on building a library of examples with video
           | and interactive documents that people can play with and find
           | from the home page.
        
           | aaron32311 wrote:
           | Not the op, but there is a public playground here [1] that
           | may help evaluate the app.
           | 
           | https://www.workflowy.com/online-notepad/
           | 
           | FWIW, it takes some getting used to, but redeems itself as
           | quite powerful once you get the hang of it.
        
       | alunchbox wrote:
       | Amazing work, a little bit of feedback.
       | 
       | * Exiting insert mode has a noticeable delay. * Operating system
       | settings for escape (mine is mapped to caps lock) is not working.
        
       | djhaskin987 wrote:
       | It reminds me how sad I was to have to ditch emacs (due to hand
       | injuries) because I loved org mode so much. I am an avid vim user
       | -- it was nearly my first editor -- but I wish something like
       | workflowy or org mode could be used in vim. Kinda sad to just be
       | using markdown alone.
        
         | anamexis wrote:
         | Why not use emacs with vim bindings?
        
           | aidenn0 wrote:
           | As someone who uses vim as a daily driver and emacs with
           | evil-mode for a lisp IDE and occasional org-mode, biggest
           | issue is every new mode you add will either use chording like
           | emacs or will need completely new vim-compatible keybindings.
           | It's not a _lot_ of work, but it 's enough to say "eh, I just
           | won't use that package"
        
           | jascii wrote:
           | I can't speak for others, but for me it comes down to work
           | flow, vim is always 2 keystrokes away and starts instantly,
           | and sane configuration defaults (my definition of sanity
           | anyway..) it is available on all hosts I frequent and behaves
           | predictably without having to sync extensive configurations.
        
             | thotsBgone wrote:
             | For me, emacs is also 2 keystrokes away and starts
             | instantly (as long as the daemon is already running). Doom
             | emacs has sane (good!) defaults.
             | 
             | My main valid gripe with emacs is the slow rendering
             | engine.
        
           | djhaskin987 wrote:
           | I'm really good in vim too, though. I like vim. I just wish
           | we had nice things in vim, too. Besides, vim bindings is a
           | square peg in a round hole. There are edge cases and
           | community momentum to think about, all of which run against
           | the grain when nonstandard setups are used with anything,
           | including emacs.
        
             | jordan_curve wrote:
             | As someone who has only loosely dabbled with emacs and org,
             | is there a reason that an org equivalent couldn't exist in
             | vim?
             | 
             | I know there's vimwiki and stuff but I mean is there a
             | reason that the full functionality of orgmode couldn't be
             | ported to vim (modulo some keybindings)? Does it really on
             | having more control over the UI than just what's available
             | in a terminal?
        
               | djhaskin987 wrote:
               | I think that full org mode wouldn't work in vim, but at a
               | deeper level, it doesn't jive with the "zen" of vim. But
               | I'd want a solution that did.
               | 
               | Here's an example. Emacs has SLIME[1], and vim has like
               | SLIME for vim[2]. The vim counterpart leaves editing in
               | the editor but makes it easy for vim to work with
               | terminal emulators to create a great but simple SLIME
               | experience. It respects the "zen" of vim. I wish there
               | were an org mode equivalent. Will be checking out
               | vimwiki.
               | 
               | 1: https://common-lisp.net/project/slime/
               | 
               | 2: https://github.com/jpalardy/vim-slime
        
         | fao_ wrote:
         | You might love doom emacs. I've used emacs for 8 years and
         | switched in July, and I can see myself using this for the next
         | 10 years.
         | 
         | I tried Spacemacs, and the vim integration was so sloppy that
         | the first time I tried to install a single package I was dumped
         | in with unfamiliar emacs bindings, which I then had to look up
         | to even get out of it. The integration in doom emacs is much
         | tighter and better fitting.
         | 
         | https://github.com/hlissner/doom-emacs
        
           | bananamerica wrote:
           | Doom Emacs is superb :)
        
       | root_axis wrote:
       | Cool, but I wonder is key remapping possible? e.g. I use ijkl
       | instead of hjkl (because it naturally maps to my wasd and arrow-
       | key muscle memory)
        
         | disown wrote:
         | > e.g. I use ijkl instead of hjkl
         | 
         | What do you use for i ("insert") then? Personally "hjkl", i,
         | esc are the last keys I'd want to remap. Though I hear some
         | people like to remap esc to caps lock or even space. But feel
         | sacriligious to me.
        
           | root_axis wrote:
           | I switched "i" and "h" since "h" is no longer used for
           | navigating left in my arrangement (that is now "j" so it
           | matches the wasd/arrow-keys arrangement).
           | 
           | For esc I actually use "hh" in quick succession (inoremap hh
           | <esc>).
           | 
           | Yeah, it felt a little sacrilegious when I first remapped it
           | a decade ago, but ultimately I decided that all that was
           | important was achieving the productivity benefits of home row
           | navigation and ijkl does it just as well as hjkl but the ijkl
           | arrangement was already immediately intuitive to me. For me,
           | vim is all about the cumulative benefits of plugins and
           | little hacks like this that optimize my workflow in a way
           | that aligns to how my brain already thinks.
           | 
           | The main criticism I receive for this setup is that if I ever
           | have to ssh into a machine that I don't control, I won't have
           | any of my custom settings and fancy plugins, but I'm ok with
           | this since my custom vim setup is my IDE and I wouldn't
           | expect to have my IDE available in an SSH session if it were
           | vscode or webstorm or whatever. Also, it's possible to edit
           | files over ssh, and worst case scenario I just temporarily
           | switch contexts to hjkl, but in practice I don't really have
           | to edit code over ssh.
        
       | dnr wrote:
       | Sorry if this is inappropriate, but for people looking for a tool
       | like this or Workflowy, I want to suggest Dynalist, which has the
       | simplicity of Workflowy but also a bunch more features. Cloud-
       | based, always synced, mobile apps, easy sharing, calendar
       | integration, etc. I'm a die-hard vim user but I still use
       | Dynalist because it's so great.
       | 
       | https://dynalist.io
       | 
       | I'm a paying user but have no other affiliation (ask me if you
       | want a referral code though). I just want more people to use it
       | so the creators are successful and keep improving it.
        
         | roveo wrote:
         | I tried Dynalist and moved back to Workflowy literally a couple
         | of days ago. The main problem for me was that you can't link-
         | share an arbitrary bullet and it's children -- only the whole
         | document. So if I need to share a link, I have to create a new
         | document just for this purpose. The one-document model of
         | Workflowy just seems more logical and simple. Although the free
         | version of Dynalist is more complete/usable, so if you don't
         | really care about sharing, it's better (for example, no
         | limitation for created nodes per day).
         | 
         | And obviously they are both missing vim bindings, which I would
         | LOVE to see.
        
           | dnr wrote:
           | That's fair. I recall reading the developers' rationale for
           | their decision to do multiple documents and sharing at the
           | document level. They argued that it simplified the mental
           | model, and I'd tend to agree: when I use shared docs I want
           | to be careful with what's private and what's shared, and the
           | UI (the document list on the left) make it easy to do that.
           | Almost every time I've shared something, it's been intended
           | for sharing from the start, so creating a new document is
           | natural. (And the one time that wasn't true, cut and paste
           | into a new doc was just a few clicks.)
           | 
           | One problem with Workflowy for me was that the mobile app(s)
           | were not very good. Dynalist's isn't great either but it's
           | better.
           | 
           | Anyway, the products are more similar than they are
           | different.
        
             | jessep wrote:
             | Our mobile apps have had a major overhaul, you should try
             | them again.
        
         | three_legs wrote:
         | Yeah I first found Dynalist on HN from a comment like yours
         | about 5 years ago! I have so much of my life there
        
       | kartoshechka wrote:
       | sorry but i'm using colmak, see you later normies!
        
       | arnklint wrote:
       | Whoooaaaaat, finally! The perfect combo of the two best tools in
       | the world! :)
        
       | jph00 wrote:
       | Very nice! One thing I noticed is that `}` (move-next-sibling)
       | doesn't work if the next sibling isn't visible (i.e. if you're
       | not showing the parent). I'd like `}` and `{` to work regardless
       | of visibility.
        
       | genezeta wrote:
       | I guess you must be using key codes from a US keyboard, right?
       | 
       | The problem with that is that when on a different layout the
       | _help_ doesn 't really correspond to the mentioned keys.
        
         | mlok wrote:
         | I can confirm : lots of things are broken when using an AZERTY
         | keyboard.
        
       | demosito666 wrote:
       | This is nice vim emulation, but why not take notes in vim in the
       | same way? It can do all the same stuff and you don't need to
       | leave the editor. vimwiki is never more than three keystrokes
       | away...
        
         | llimos wrote:
         | This comment _strongly_ reminds me of the now-legendary Dropbox
         | one[1]
         | 
         |  _For a Linux user, you can already build such a system
         | yourself quite trivially by getting an FTP account, mounting it
         | locally with curlftpfs, and then using SVN or CVS on the
         | mounted filesystem. From Windows or Mac, this FTP account could
         | be accessed through built-in software._
         | 
         | [1] https://news.ycombinator.com/item?id=9224
        
           | bxk1 wrote:
           | This comment is also legendary misunderstood. He pointed out
           | how trivial the idea was, which of course became a problem
           | for dropbox when every tech company implemented it once they
           | saw the demand for it and took its marketshare. Nowadays it's
           | hard to consider dropbox as anything but a dying product of a
           | dying company.
        
         | daemoncoder wrote:
         | I've been using The Vim Outliner (TVO) for years now, haven't
         | found anything else that works as well for my daily workflow.
         | 
         | https://www.vim.org/scripts/script.php?script_id=517
        
         | jonahx wrote:
         | You can fold but how would you zoom?
        
         | Sodman wrote:
         | I've wanted to do something very much like this (vimflowy) in
         | native vim for a while, but as a relative vim-noob I haven't
         | found a way to do any of the following without going down the
         | vim-plugins route:
         | 
         | - Instantly collapsable/expandable lists (I guess maybe vim
         | folds by indentation could be used?)
         | 
         | - Open sub-list in new window
         | 
         | - Mark a "task" as done
         | 
         | - Basic text formatting (italics/strikethrough/monospace)
         | 
         | - Easy way to "search everything, show a list of results, jump
         | to the context of the chosen result".
         | 
         | In contrast, vimflowy makes all of these quite easy and
         | intuitive.
        
           | demosito666 wrote:
           | > - Instantly collapsable/expandable lists (I guess maybe vim
           | folds by indentation could be used?)
           | 
           | Yes, `set foldmethod=indent`
           | 
           | > - Open sub-list in new window
           | 
           | This is something I'm not sure exists as a ready-made
           | solution, you'll have to write a function for that. It's
           | trivial for the majority of cases though.
           | 
           | > - Mark a "task" as done
           | 
           | > - Basic text formatting (italics/strikethrough/monospace)
           | 
           | I use vimwiki that has this, there are a lot of other ways to
           | achieve the same.
           | 
           | > - Easy way to "search everything, show a list of results,
           | jump to the context of the chosen result"
           | 
           | fzf.vim. The above and also supports fuzzy search.
        
             | antognini wrote:
             | I've tried `set foldmethod=indent`, but I've found it to be
             | _very_ slow and it introduces a noticeable lag when typing.
        
             | WorldMaker wrote:
             | >> - Open sub-list in new window
             | 
             | > This is something I'm not sure exists as a ready-made
             | solution, you'll have to write a function for that. It's
             | trivial for the majority of cases though.
             | 
             | gf (or <Ctrl+W>f for the new window version) could be
             | useful for this, if the sublists are separate files:
             | https://vim.fandom.com/wiki/Open_file_under_cursor
        
         | fouric wrote:
         | Taking hierarchical notes in vim conflates content with
         | presentation/representation, which is bad.
        
       | Plugawy wrote:
       | We've came around full circle - I made this few years ago
       | https://github.com/lukaszkorecki/workflowish
        
       ___________________________________________________________________
       (page generated 2020-11-04 23:00 UTC)