IDEs are bad at editing text

šŸ”— posted

šŸ”™ back to index

i was originally a vi user. i only got a few years muscle memory before i became an emacs user. everyone else in the lab used emacs and i didnā€™t want to be the odd one out at that point in my life. if this is sounding familiar, i wrote about it in a series of footnotes in a previous post.

i used emacs for about 15 years before switching to vs code, and vs code for a few years before switching to zed. iā€™m living that manager life these days so most of my typing happens in obsidian (when iā€™m lucky and can scrape together the time i need to think about stuff).

every editor seems to have passable vim emulation but none have good emacs emulation. this is not their fault: to become fully immersed in emacs is to detach yourself from the reality that 99.999% of computer users live in. the spacebar thing is a joke but just barely. during the throes of my devotion to the church of emacs, i made it so holding down enter acted as control so i could have a control key on the right side of the homerow1 and when friends joked about getting me a control foot pedal i might have actually considered it for a moment.

iā€™ve been considering whether to just go back to the old me and reinstall emacs. i miss org-mode, i enjoy writing lisp, and iā€™m no longer worried about sharing configs/plugins/etc with coworkers since nobody pays me to produce software anymore. iā€™m hesitant, though. as much as i felt productive, i was not living my best life, ergonomically speaking. i managed to fuck up my hands so bad once jenn made me pinky splints out of a broken pencil. i donā€™t know if iā€™m ready to go back to that life. also, as much as i appreciate free software, i do not like stallman.2

and you know what, ever since the splints, iā€™ve thought maybe modal editing isnā€™t so bad, maybe even better for not fucking up šŸ¤ššŸ½ the olā€™ money-makers āœ‹šŸ½. at the time i didnā€™t want to give up my muscle memory, but at this point itā€™s thoroughly fucked anyway. i do still use as many emacs bindings as iā€™m able, where they are supported, but iā€™m finally free of the real deep shit. i even use the backspace key sometimes now instead of ctrl-h!

so iā€™m writing this in helix rewiring my brain into modes instead of contorting my hands into chords3. iā€™m using chatgpt to try to accelerate through the friction phase: i tossed it the whole keymap, said itā€™s a modal editor like vim, and iā€™m asking questions like ā€œhow do i move a line up, like the text, not just the cursorā€. itā€™s frequently wrong, but itā€™s wrong in ways that are instructive and lead me a little closer to the right answer.

oh yeah IDE terminal emulators are also dogshit

using a terminal editor is nice! i donā€™t need a lot of accoutrements, and iā€™m already used to mousing around as little as humanly possible. when i am mousinā€™, my trackpad speed is jacked as high as it will possible go.

in fact, writing this reminded me that i hadnā€™t yet installed BetterTouchTool on this computer which lets me crank the tracking speed dangerously high, or at least higher than the macOS settings will allow it to go.

having an absurdly fast trackpad is part of what dissuades me using an external keyboard/mouse because this whole setup feels more comfortable for me personally! i can whip the cursor around the screen with small flicks of my thumb, which is already a few centimeters from the trackpad since itā€™s usually resting on spacebar. with a kb/mouse situation i had to physically move my whole hand from the keyboard to put it on a whole separate device that was possibly dozens of centimeters away.

anyway, terminal editor! iā€™m writing this in a Zellij pane split with an astro dev server and a regular ā€˜ol shell in another. i forgot how much i like this setup! if i have complaints about text editing in IDEs (and i do), boy do i have straight up gripes about terminal emulators in IDEs4 so i always keep a spare open anyway. why not cut out the middleman?

using a modal editor seems to work pretty well in things like Zellij/tmux/screen whereas i remember it being pretty annoying in emacs without significant configuration to avoid keymap clash!5

iā€™m not gonna rm -r /Applications/Zed.app but iā€™m going to try to do more of my typing in helix and see how it treats me. i frankly donā€™t need a lot of fancy IDE stuff anyway; these days when i get to code, iā€™m mostly writing sql and bash, with a sprinkling of typescript, python, and rust when iā€™m allowed to have fun. iā€™m mostly editing files, not working on big projects with complex needs.

i also kinda like no built-in spellcheck! i try to stay in writing mode when iā€™m writing and not revert to editing mode, but those dang squiggles make me want to fix things immediately šŸ‘€ and then iā€™m drawn one step closer to the edit.

iā€™m gonna keep trying to get comfortable with helix, but if/when i go back to authoring posts in obsidian, this inspired me to toggle off spellcheck when iā€™m drafting. if i do stick with helix, iā€™m perfectly happy to do an aspell pass at the end!6

currently listening

The Body & Dis Fig on Audiotree Live

Footnotes

  1. swapping capslock with control is still the first thing i do on a new computer, itā€™s so ingrained that i get confused using other peopleā€™s computers where itā€™s not swapped. ā†©

  2. he once walked by a room i was meeting in and glared at me so hard that the person i was meeting with stopped and said ā€œdo you know him? why is he glaring at you like that?ā€ and i couldnā€™t answer, i had never met him and didnā€™t know why! thatā€™s not why i donā€™t like him, i just think thatā€™s a fun little tidbit. ā†©

  3. multiple keys at once, usually with multiple modifiers. think about playing a chord on a piano. ā†©

  4. latest gripe: something seems to have changed in zed and now I have to hit Ctrl-k twice when in a terminal to kill the line. alternatively, i can hit it once and wait 2 complete human seconds for it to work. itā€™s not frozen, but it seems to be anticipating another key. i can likely fix this, but instead of spending the 5 minutes to figure out how to do that, i spent the entire night trying out helix and writing this fucking blog post. ā†©

  5. this didnā€™t matter as much when i was at my most emacs poisoned since i did just about everything within those four walls. i used a dang emacs twitter client! ā†©

  6. as i was spellchecking and figuring out if itā€™s ā€œhome rowā€ or ā€œhomerowā€ (and whether i care), i found Homerow.app which seems entirely my shit. ā†©