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?

  • flamingos-cant@feddit.uk
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    13 days ago

    I use Emacs and love it. It’s an amazingly frustrating (and just plain amazing) piece of software, but it’s hard to move away from it because it’s the only thing like it. Maybe if Lem every gets mature enough I might switch.

    I probably wouldn’t recommend it though as it doesn’t sound like what you’re looking for.

  • Shareni@programming.dev
    link
    fedilink
    arrow-up
    2
    arrow-down
    2
    ·
    13 days ago

    Doom Emacs and lazyvim nvim.

    Don’t know about helix, and don’t really care.

    Modal is incomparably more comfortable, that’s the main benefit.

    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

    Do you imagine vi-based editors don’t let you use your mouse or what? Go through vim-tutor, learn the basic shortcuts you need, and you’re back to your old productivity in a few days. You don’t need to learn vi" to select a string, you can just use your mouse.

    No offense to you or your habits, but C-arrow is an idiotic movement scheme. If you have to leave the home row to move around the text, you fucked up.

    Just go through vim tutor…

  • jjjalljs@ttrpg.network
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    13 days ago

    I use pycharm at work for most things. Work paid for it. It has some nice stuff i like. I’m sure other editors do all of this, too, but nothing’s been causing me enough pain to switch

    • Database integration. Little side panel shows me the tables, and I can do queries, view table structure, etc, right here
    • Find usages/declaration is pretty good. Goes into library code, too.
    • The autocomplete is pretty good. I think they have newfangled AI options now, but the traditional introspection autocomplete has been doing it for me.
    • Can use the python interpreter inside the docker container
    • The refactor functions are pretty good. Rename, move, etc
    • Naive search is pretty good. Can limit it to folders, do regex, filter by file name, etc

    It does have multiple cursors but I’ve rarely needed that.

    I use sublime for quick note taking. Mostly I like that it has syntax highlighting, and it doesn’t require me to explicitly save a tab for it to stay open

  • Ben Matthews@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 days ago

    Zed, for the last few months, and happy with it (previously vscode) - I code in Scala, so Metals provides the complex hints / actions.

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

    NeoVim plus tmux.

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

    It’s beautiful

  • AnarchistArtificer@slrpnk.net
    link
    fedilink
    English
    arrow-up
    13
    ·
    13 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.

  • yogsototh@programming.dev
    link
    fedilink
    arrow-up
    9
    ·
    13 days ago

    Fresh from university I found a job with terrible keyboards. After about 4 months I started to feel constant pain in my wrists. I then switched to vim.

    And it solved my wrists issue. But also, I discovered a way to edit text that was so much optimized fat beyond my expectations.

    I wrote this article for people that would like to familiarize with vi keybindings.

    https://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

    • micro@programming.dev
      link
      fedilink
      English
      arrow-up
      6
      ·
      12 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
      ·
      13 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
          ·
          13 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.

  • mrkite@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    11 days 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

  • morrowind@lemmy.ml
    link
    fedilink
    arrow-up
    42
    arrow-down
    2
    ·
    13 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

    • pooberbee (they/she)@lemmy.ml
      link
      fedilink
      arrow-up
      19
      arrow-down
      1
      ·
      13 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.

    • sping@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      7
      ·
      13 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.

    • mrkite@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      11 days 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.

    • AdamBomb@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      13
      ·
      13 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.

    • verstra@programming.devOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      13 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
      5
      ·
      edit-2
      12 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.

  • RandomVideos@programming.dev
    link
    fedilink
    arrow-up
    6
    arrow-down
    2
    ·
    12 days ago

    I use the godot integrated code editor, but i am debating switching to writing the code in google slides and copying the text into notepad in a virtual machine

  • UraniumBlazer@lemm.ee
    link
    fedilink
    English
    arrow-up
    15
    arrow-down
    4
    ·
    13 days ago

    Vscodium. Anything else (ESPECIALLY VIM, SO DON’T TELL ME TO USE VIM) makes my brain want to eject itself into the 37th dimension to look for Nirvana and the true purpose of life.

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

      Haha, I know that feeling from earlier when I was trying out hx --tutor. Just staring a the keyboard trying to remember which key to press, only to press the wrong one and have it do something completely unexpected.

    • xep@fedia.io
      link
      fedilink
      arrow-up
      18
      arrow-down
      1
      ·
      13 days ago

      Hey have you tried using Vim? I like it better than Emacs

  • MXX53@programming.dev
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    12 days ago

    I use emacs when on my personal machines. VS Code at work.

    The fastest tool is the one you are best at using. I find that my tool doesn’t make me fast, my ability to solve issues makes me fast. I very rarely learn a new tool unless it accomplishes something for me my other tools do not.

    For example, at work I use windows and regularly ssh to servers. My entire job is spent ssh’d into other servers. Emacs terminal emulator is spotty at best when using ssh on windows. There are ways to make it work, but some modifications get flagged by our SEIMs. So in that case I use vs code, and the ssh remote connection options and split terminal interface.

    At home I use emacs. I have all Linux machines so my terminal plays nicely. I also am working on reducing my RSI from years of tech work. The less mousing I have to do, the better. Emacs allows me to keep my hands on my keyboard.

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

      A coworker has told me that in a previous job, he was talking to an intern and mentioned IRC and intern asked what was that. He told him that it is the “old instant messaging”, which another senior coworker overheard and chimed in that “no, IRC is the new messaging thing”.

      If someone would be asking be what netbean is, I’d say “an IDE from the old generation of editors”, but I guess that is all relative :D