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?
Panic Nova on macOS, VSCode on Windows, neovim in the Shell.
Sublime Text.
The only thing I need from my editor is syntax highlighting and not be slow.
(Assembler, C, Python, Java and Bash are the languages I mostly work with)
How do you debug?
Depends on language and platform ;) Ghidra, strace, printouts gets you quite far. The only language I regularly step would be assembler.
Ghidra seems intense when gdb is right there. Lol. What advantages do you see in using Ghidra on your own code? It seems interesting.
Gdb doesn’t support arm macs. I’ve switched to lldb.
Nice. Does it work well for you? How does it compare?
If you know gdb, you know lldb… it’s pretty much a drop-in replacement.
A lot of what I do (hw/fw hacking) involves running Ghidra on code by others so it’s just a tool I know well. As I mentioned I seldomly step through my own code while debugging high level languages.
Well, I’ve successfully used LSP for Sublime Text before. Would probably still use it if I hadn’t transitioned to Neovim recently.
I do still use sublime as a “note” app, where I a “cheatsheet” open with a bunch of common commands I need for our project + a todo.
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.
Have you tried
ed
?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.Hey have you tried using Vim? I like it better than Emacs
neovim. i much prefer the motions of helix, but there’s just some plugins i can’t live without.
Helix’s is amazing. It’s pretty simple and it has tons of out of the box features like lsp support. I switched from vim and never looked back tbh. It’s far superior
seeing mscode/codium/vswhatever makes my brain hurt. geocities of code. now i am using Zed. problem solved.
Why geocities of code?
like geocities pages back than by default everyone is lowkey ricing it to look like shit.
I mainly work with C#, where I use Visual Studio. I think I mainly changed bindings for expand selection, and go to definition, declaration, implementation (ALT+A/+S/+D). All other bindings work out for me.
Cursor and selection “jumping” with CTRL and SHIFT, and using multiple cursors is a regular occurrence for me. I largely keep using keyboard, but for navigating I do often switch to or combine it with mouse.
When it’s not C#, it’s often VS Code, or otherwise Notepad++ for non-IDE simple editing. For even simpler quick edits I also use Double Commanders integrated text editor.
I use TortoiseGit, and its diff editor. I sometimes make changes there too. I also occasionally use KDiff or Winmerge.
I think whether it’s worth to learn a new one should be determined by 1. what are your pain points/shortcomings, 2. what are the promises or your hopes, and 3. testing it out.
If you explore a promise and quickly find it not useful to you, it may be easy and simple to dismiss a switch without investing more.
Have you ever tried Rider? I found it such a pleasure to use in place of Visual Studio and I’ve never looked back.
Any times I’ve loaded VS since it just feels so slow in comparison.
I’ve tried it briefly, but didn’t like it/did not find an intuitive or preferred way into it.
Depends on what device I’m using. On my tower(s), I’m typically reaching for Rider, Pycharm, or Zed. On my laptop(s) it’s pretty much always Helix or Zed. On servers it’s vim 100% baby. I’ve gotten pretty comfortable working with theses tools, so I haven’t really needed to look into alternatives at all.
Is the lack of debugger in Zed not a problem for you?
Nah. When I’m using Zed it’s typically for Elixir/Erlang and I’m usually run debugging tools outside of Zed in a separate shell. When I’m using
iex
and/orobserver
I like to use a full screen terminal on a separate workspace/tab than the editor itself
Most code I write is Java and I use IntelliJ for that. When I write Python I use PyCharm, anything else, Visual Studio Code or VSCodium.
All of these have plugins for vim keybindings which are always the first thing I install. I almost never disable them.
I keep hearing about how modal editing is faster
Please, do yourself a favor and ignore that noise. It is more a question of like/dislike and training. Personal sidenote: I daily alternate between PhpStorm and Neovim. Can’t say doing things in either is faster/slower to any significant degree (PhpStorm is mostly there for the things I have not yet configered properly in Neovim, like looking through git history)
and I would like to switch to a more performant editor
This should be looked at and tested objectively: is it working with big files that is the problem? Or navigating the code base? Or something else? Maybe it is better to tweak vscode instead?
Android Studio or VSCode usually.
But really, there’s no single best option here - use whatever works the best with you and the tech you’re targeting. The same advice applies for programming languages, libraries and just about everything in tech
Spyder (with conda) Arduino IDE
I mostly use Jetbrain’s IDE’s and NeoVIM when changing configs through the terminal.