When I was in high school I found Sublime Text and learned “multiple cursors”. Since then, I’ve transitioned to vscode, mainly because I need LSP (without too much configuration work) for my work.

I keep hearing about how modal editing is faster and I would like to switch to a more performant editor. I’ve been looking at helix, as the 4th generation of the vi line of editors. Is anyone using it? Is it any good for the main code editor?

The problem that I have is that learning new editing keybindings would probably take me a month of time, before I get to the same amount of productivity (if I ever get here at all). So I’m looking for advice of people who have already done that before.

My code editing does involve a lot of “ctrl-arrow” to move around words, “ctrl-shift-arrow” to select words, “home/end” to move to beginning/end of the line, “ctrl-d” for “new cursor at next occurrence”, “shift-alt-down” for “new cursor in the line below”, “ctrl-shift-f” for “format file” and a few more to move around using LSP-provided “declaration”/“usages”.

I would have to unlearn all of that.

Also, I do use “ctrl-arrow” to edit this post. Have you changed keybindings in firefox too?

  • mrkite@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    1 day ago

    I switched to helix last year after over twenty years of vim. I really like helix, but it did take some getting used to. Using multiple cursors instead of repeated commands etc

  • paequ2@lemmy.today
    link
    fedilink
    English
    arrow-up
    7
    ·
    2 days ago

    I’ve been using Vim for over 10 years. The first few years I used it badly. Later I took time to really learn it. Now I can use it fairly decently, but I still learn new things every now and then.

    It feels like a really good investment. It’s been around forever, it’s gonna be around forever, it’s installed on almost all computers, and you’re going to be forced to use it at some point or another.

    I really enjoy being able to go to any computer and starting up a familiar editor, without installing or configuring stuff. I also use a very vanilla Vim. If a coworker’s laptop or some server has a different Vim config than mine, I can usually do vim -u NONE to get back to a familiar place.

  • Hawk@lemmynsfw.com
    link
    fedilink
    arrow-up
    7
    ·
    2 days ago

    I left a comment before but I thought I’d address the concerns around modal editing. It’s not as hard as it seems, once you wrap your head around hjkl you’ll be fine.

    Use Lazyvim to get started and install the vim plugin in vscode. Try it qutebrowser too you won’t look back honestly.

    Consider helix too, it works out of the box but the keys are slightly different to Vim which makes it challenging for me.

    • verstra@programming.devOP
      link
      fedilink
      arrow-up
      3
      ·
      2 days ago

      I’ve tried helix and used it for work today. At first, it was super slow, relearning how to jump between buffers, but at the end of the day, i got decent at it.

      But I cannot hjkl. It’s just unnatural. The moment I stop thinking about it, my hand is back at arrow keys.

      • Zykino@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        2 days ago

        I’m using helix with arrows. On a standard layout its not so great, but on my main keyboard I have a layer with arrow keys near hjkl. So I can use that on all software even on my BÉPO (DVORAC like) layout.

  • zaphodb2002@sh.itjust.works
    link
    fedilink
    arrow-up
    14
    ·
    edit-2
    3 days ago

    I started with neovim because I hate my laptop’s mousepad, and that’s often pushed as a benefit of modal editors, not needing the mouse. After I used it for a while I found that not only could you do stuff easily that would be difficult in, say vs code, but it was also pretty fun. It’s honestly a bit of a power trip sometimes, makes me feel like a 90s tv hacker. Also plugins. So many neat plugins.

  • morrowind@lemmy.ml
    link
    fedilink
    arrow-up
    42
    arrow-down
    2
    ·
    3 days ago

    I keep hearing about how modal editing is faster and I would like to switch to a more performant editor.

    Honestly I’ve yet to hear a good argument for this. It feels like such a major investment to switch to vi-like editors, I need a pretty good argument before considering it

    Also a good argument for “why does it matter”? Speed of editing is rarely a bottleneck when editing code. If it is, you might want to consider why your code is so verbose and repetitive to make it so

    • mrkite@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      Speed of editing is rarely a bottleneck when editing code

      It’s not just that though, its moving around your code. Being able to jump between matching brackets, follow references etc. it’s just quicker and easier with a modal editor.

    • pooberbee (they/she)@lemmy.ml
      link
      fedilink
      arrow-up
      18
      arrow-down
      1
      ·
      3 days ago

      Modal editing for just raw text input would actually be slower, because you also enter and leave Insert Mode. I find it’s very fast and powerful for navigating around the text, which you probably do a lot more than actually editing it. And when it does come to editing, there are a lot of higher-level tools (at least in Vim) for accomplishing things more quickly, like the ‘s’ command and ‘q’ macros.

      I think getting into a mental “flow” state is really valuable, and muscle memory is important for being able to stay there. If your muscle memory is to navigate around using the mouse, that’s great, but Vim feels faster to me.

    • AdamBomb@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      13
      ·
      3 days ago

      In my personal experience, it’s a little faster but not a huge speed difference. However, it’s much more pleasant and ergonomic. I enjoy the act of modal editing much more than modeless.

    • sping@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 days ago

      I used vi for a few years so have the muscle memory and the sole advantage in my perception was that everything is simple typing with hands remaining in the home keys position (except Escape, ironically).

      So it’s more relaxed if you find using modifiers onerous, but I don’t find Ctrl or Alt significantly worse than Shift, and I don’t find it any worthwhile advantage.

    • jeffhykin@lemm.ee
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      3 days ago

      Input speed is not “just” input speed.

      Note: I’m not about to argue for or against modal editors, I just want to answer: why is input speed really really really important, when (we agree) its not a big percent of total time.

      5min at 80mph over a bumpy dirt path is very very different than 5min of flat smooth straight driving. And not just because of effort.

      A senior and junior dev could spend the same amount of time to rename a var across 15 files, move a function to a new file, comment out two blocks, comment one back in, etc. But. When I try to have a conversation while they do that, or when I change my mind and tell the junior to undo all that, its a massive emotional drain on the junior.

      But effort isn’t the whole picture either: speed is a big deal because pausing a conversation/mental thought for 5 seconds while you wait to finish some typing, is incredibly disruptive/jarring to the thought-process itself. That’s how edge cases get forgotten, and business logic gets missed.

      Slower input is not merely input time loss, it also creates time loss in the debugging/conceptualizing stages, and increases overall energy consumption.

      If the input is already fast enough that there’s no “pauses in the conversation” then I’d agree, there’s not much benefit in increasing input speed further. BUT there’s almost always some task, like converting all local vars (but not imported methods) in a project to camel case, that are big enough to choke the conversation, even for a senior dev. So there’s not necessarily a “good enough” point because it’s more like decreasing how often the conversation gets interrupted.

    • verstra@programming.devOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      3 days ago

      That’s a good argument. The editing speed is not the limiting factor in my workflow.

      Honestly, I think my interest for modal editing is a bit irrational. Maybe I don’t want to be a normie, using the default keybindings :D

  • jeffhykin@lemm.ee
    link
    fedilink
    arrow-up
    23
    arrow-down
    1
    ·
    edit-2
    3 days ago

    Don’t Speculate

    Go to Twitch/YouTube. Watch a senior Vim/Jetbrains/Emacs/VS Code/Helix dev churn out code for a hackathon/advent-of-code, and see what you are (or are not!) missing out on.

    If you have “how the hell did they just do that” moments, figure out what that feature is, and STEAL IT. If its too hard to steal, then maybe you are being limited by your editor. Base your “fear of missing out” on what you see rather than random people tossing their opinions around. Only you can answer “how much is that feature worth to me and my workflows?”

    • If you’re going to try modal editors, sooner is exponentially better. Probably start with Vim bindings for VS Code.
    • If you’re not going to go modal, then make absolutely sure you don’t bottom out. To be frank, Ctrl+D is the tip of the iceberg. Half the benefit of modal editors is, mastery is mandatory; they chase you around with a 10k volt taser until you’ve got 100 instinctual shortcuts. Hardly anyone mentions this but Go beyond/outside your editor: At the OS level, use spacebar as a modifier key, where holding spacebar converts your WASD into arrow keys. Then disable your normal arrow keys. Something like that will get you vim-like benefits, but in every app, and with a learning bump instead of a learning mountain. For VS Code, get cursor jumper extensions like Mario (block jumper), get cursor-alignment extensions, write boatloads of custom code snippets, get a macro record+replay extension, make a jump-to-next quote, jump to next bracket, install sequential number generator extension, a case change (camel case, snake case, etc) extension, sort lines, case-preserving rename. If you can avoid bottoming out, and keep learning, you’ll likely never feel that you are missing out on whatever modal editor people are swearing by.
    • 0101100101@programming.dev
      link
      fedilink
      English
      arrow-up
      6
      arrow-down
      5
      ·
      3 days ago

      I get this, but an IDE should be invisible and grow as you do and not require you to learn lots of janky things before it becomes a little bit useful for you.

      Need the basics, great, here they are. Don’t understand some advanced feature? Well the IDE has it here, but it isn’t in your way, mess with it as and when you want. It’ll still be there.

      I don’t think one IDE does everything for different languages and its ok to swap editors depending on your workflow, your project and your ever-changing skillset.

      • jeffhykin@lemm.ee
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        3 days ago

        I get this, but

        Why not say “I get this, and …” ?

        I don’t think the idea of a learn-as-you-go editor goes against the idea of watching skilled devs with their favorite tool

  • Hawk@lemmynsfw.com
    link
    fedilink
    arrow-up
    8
    ·
    2 days ago

    Neovim, Emacs, Helix and VSCode.

    Zed has been fun.

    VsCode and Pycharm are just too slow for me. You need a very fast machine with a lot of RAM.

  • PokerChips@programming.dev
    link
    fedilink
    arrow-up
    14
    ·
    3 days ago

    NeoVim plus tmux.

    Great multi dimensional way of operating. You have access to the terminal and your ide.

    It’s beautiful

    • micro@programming.dev
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 days ago

      Same. Jetbrains makes the best IDEs hands down IMO and I say this after 20 years of coding and using numerous IDEs. I also use vscode as a backup but as more of a glorified text editor.

    • morrowind@lemmy.ml
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      3 days ago

      I used to use Jetbrains when I was using C# (mostly stopped now), because it was better that VS and tooling elsewhere is mediocre, on purpose by ms. But beyond that I don’t see the point. I say that as someone who has it for free through a student license. They’re such heavy editors, only kinda cross language, extension ecosystem not as good as vscode.

      Great default keybindings though, I’ve adopted a lot of them elsewhere too

        • FrostyPolicy@suppo.fi
          link
          fedilink
          arrow-up
          5
          ·
          3 days ago

          I’ll add shift + f6 for refactor rename and ctrl + 6 for redefining your function i.e. add/remove parameters and/or return value.

  • AnarchistArtificer@slrpnk.net
    link
    fedilink
    English
    arrow-up
    13
    ·
    3 days ago

    The main reason I like vi/vim is that if you’re having to use multiple different computers (such as if one is a sysadmin, or in my case, does scientific computing), because if you’re running on Linux, you can be confident that vi/vim will be on it.

    For personal use, I’ve been using emacs, but I can’t recommend that without feeling like I’m suggesting you try some heroin. I enjoy emacs because of it’s complexity and how much power it gives me to modify it. It’s very easy to fall into feature creep and over complexity though. That’s why I can’t recommend it — it’s good for me because I am a chronic tinkerer, and having something to fuck around with is an outlet for that.

    I would recommend learning the basics of vim though. As you highlight, getting back to your current level of productivity would take a while, even if you loved vim and committed to it wholeheartedly. It is possible to try it out with little commitment though, for the perspective. If you’re on a machine that has vim installed already, try the vimtutor command, which will start the ~30 min long inbuilt tutorial for vim. I liked it for giving me perspective on what on earth vim even was.

    I know you don’t use it anymore, but I just want to fistbump you re: sublime text. I really loved that as a basic text editor that was, for me, just a slightly nicer notepad.

  • Realitaetsverlust@lemmy.zip
    link
    fedilink
    English
    arrow-up
    9
    ·
    3 days ago

    I swapped to neovim 10 months ago. Haven’t looked back. Actually, I’ve looked back a LOT for the first few weeks because I couldn’t figure out how to do certain things. But the more you learn the better it becomes. Not needing your mouse is SO good.

  • QuizzaciousOtter@lemm.ee
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    3 days ago

    I use Neovim. It feels like a second nature after using it for years. I love how effortless the interaction with the editor is after you have spent hundreds of hours learning it. I have no reasonable arguments to convince anyone to do that though. I just do it because I enjoy the hell out of it 🤷‍♂️