Coders or lemmy, what editors do you use? Is it worth learning a new one?
-
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?
VSCode with the Vim plugin most of the time. Vim if I'm just editing something small and was already in a terminal.
Every IDE worth trying has Vim mode or a plugin for it, you don't need to use actual Vim to benefit from it!
-
Thanks for the overview. I'll work with tutor and see how frustrated I get
Regarding language servers:
Recently, I got into this philosophy of "every project needs a declarative environment". It means that there is a committed file that should contain all tooling need to work with the project. Compilers, formatters, test runners and also: language servers.
This fights with vscode extensions which try to be clever and download their language server / bundle it into the extension itself. "No, rust-analyzer, I don't want your build because it does not work with xtensa target arch I'm using in this project".
So actually, this ties nicely with helix not providing the language servers itself, but allowing you to bring your own.
Yeah I agree, I like that aspect too!
-
I've recently taken to kakoune which was one of the inspirations for Helix.
It's not as fancy (in terms of built-in features) out of the box, but it's very performant, integrates with tmux well, and for the C++ and Python I'm writing I haven't felt the need for much beyond token based word completion and grep.
The client server model it uses has really let me improve my tmux skills because I'm working inside of it more and using it for editor splits.
I don't know if Helix does this, but I've also come to love the pipe operator (where you just pipe a selection into some external program and the selection gets replaced with the output, so you can use the e.g. the sort command to sort text). You can also pretty easily add in custom extensions via command line programs.
Ahhh nice, I have thought about trying out Kakoune as it supports plugins. Do you use many plugins/find them useful?
Helix does have a pipe command also.
-
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?
Don't Speculate
Go to Twitch/YouTube. Watch a senior Vim/Jetbrains/Emacs/VS Code/Helix 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 you are probably being limited by your editor.
- If you're going to change editors and make the jump, sooner is better. Start with Vim bindings for VS Code.
- If you're not going to switch, then make absolutely sure you dont bottom out. To be frank, Ctrl+D is the tip of the iceberg. Half the benefit of vim/helix is, they chase you around with a 10k volt taser until you've mastered tons and tons of shortcuts. Go beyond/outside your editor: Use spacebar as a modifier key, where holding spacebar converts your WASD into arrow keys. You'll get vim-like benefits of never lifting your hands, but in every app. For VS Code, get cursor jumper extensions like Mario (block jumper), get cursor-alignment extensions, write boatloads of custom vs code snippets, get a macro record+replay extension, make a jump-to-next quote, jump to next bracket, install sequential number generator extension, case change (camel case, snake case, etc) extension, sort lines. If you can do that, you'll likely never feel that you are missing out on whatever modal editor people are swearing by.
-
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?
nano is the best (imho) for up to medium size files. It’s preinstalled in most Linux boxes , it’s simple and powerful enough
-
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?
I just use Vim out of habit. I've been using it as my main text editor since I was like 13 or so, maybe more like 10 I don't really remember. It works perfectly well for the vast majority of my use cases. I use Jetbrains IDEs if I feel I need the power of a full IDE. Jetbrains has an IdeaVim plugin if you want it to be a modal editor, or if your fingers are accustomed to Vim keybindings.
-
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?
VS Code with your favorite plugins is pretty fantastic for any editing in my experience. I've tried others and they do seem to work well, but not well enough to warrant switching, and they often come with quirks that are just annoying enough to make me want to switch back.
I suggest trying others to know what's out there, even if you ultimately end up back on VS Code.
-
Don't Speculate
Go to Twitch/YouTube. Watch a senior Vim/Jetbrains/Emacs/VS Code/Helix 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 you are probably being limited by your editor.
- If you're going to change editors and make the jump, sooner is better. Start with Vim bindings for VS Code.
- If you're not going to switch, then make absolutely sure you dont bottom out. To be frank, Ctrl+D is the tip of the iceberg. Half the benefit of vim/helix is, they chase you around with a 10k volt taser until you've mastered tons and tons of shortcuts. Go beyond/outside your editor: Use spacebar as a modifier key, where holding spacebar converts your WASD into arrow keys. You'll get vim-like benefits of never lifting your hands, but in every app. For VS Code, get cursor jumper extensions like Mario (block jumper), get cursor-alignment extensions, write boatloads of custom vs code snippets, get a macro record+replay extension, make a jump-to-next quote, jump to next bracket, install sequential number generator extension, case change (camel case, snake case, etc) extension, sort lines. If you can do that, you'll likely never feel that you are missing out on whatever modal editor people are swearing by.
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.
-
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.
-
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?
Amateurs. I manipulate the delicate flutters of butterfly wings.
-
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?
+1 for Helix. Selection then action always made more sense to me than action then selection.
-
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?
cat << EOF # [[content here]] EOF > file.txt
On a more serious note: Neovim for quick file-edits, doom-emacs as my IDE.
Doom-emacs does most of the stuff you are already using out of the box, is highly configurable and it lets you use vim-keybindings. It's also free (as in freedom) software!
-
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
? -
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?
Sublime text, vi, eclipse, emacs depending what I'm doing
-
nano is the best (imho) for up to medium size files. It’s preinstalled in most Linux boxes , it’s simple and powerful enough
You should check out Micro. It's a slightly more sane alternative to nano:
-
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.
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 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
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, ripping around turns is very very different than 5min of flat smooth straight driving.
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 them... because (if they're fast) they're driving 80mph over a crappy dirt road.
The input speed isn't a big deal because its a large chunk of time, it's a big deal because pausing a conversation/mental thread for 5 seconds while you wait for some typing to finish is incredibly disruptive/jarring to the thought process itself.
Those mental pause-and-resumes cause untold number of bugs, and THAT is where the real time sink happens.
If you're already at the point where there's no "pauses in the conversation" then I'd agree, there's not much benefit in increasing input speed on its own. BUT there's almost always some task, like converting all vars (but not imported methods) in a project to camel case from snake case, that are big enough to choke the conversation even for a senior dev. Increasing input speed is often decreasing how often the conversation gets interrupted.
-
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.
I read that, originally, Caps Lock was supposed to be the mode-changing key. For some historical reason that changed with Escape.
-
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?
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/
-
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?
I personally enjoy using pycharm and vscode, depending on what I'm working on and what tools I need/want.