This started as a post to ask a question I was stumped with. But in the process of writing the question, I solved the problem. rubber ducked myself without realizing it.
Anyway, GNU Emacs is cool, and I'm deep in the hole now. I might be able to make the transition to using it as my IDE at some point, but that seems to be involved, with language servers and all that.
One thing that was driving me a little crazy was the window behavior. I was able to solve that with a plugin called window-purpose which allows you to assign modes and buffers to a specific "purpose" and then lock the window into only showing new buffers based on that information. So I can have a main editing window where all editable file buffers appear, and a sidebar with some specific buffers locked into place. It can also save that window configuration and load it later. Which I use to standardize the window configuration every time I open Emacs.
Sadly, the Emacs community on Reddit is rife with AI content for some reason, and thus it is a pretty useless source of information. I don't really understand the subs fascination with running LLMs inside of Emacs. But I digress.
Org-Mode is pretty dope, and Org-Roam is even doper. I've used things like Logseq pretty extensively, but I eventually stopped using it as much, mainly because you're locked into using their interface/editor for the whole thing. It's nice being able to use Emacs for other text editing, and then jumping into an Org file and gaining all that functionality automatically.
I also wasn't a huge fan of the way the markdown files were generated in Logseq, where every file is just a massive unordered list on the backend. Now, I get that Org-Mode and Org-Roam are effectively the same thing, using a header hierarchy, but it feels a lot more deliberate, and you can enter text outside that hierarchy since you get to decide when to use the hierarchy or not.
In Logseq you're always working inside the hierarchy, which can be annoying when working externally and creating markdown files outside the Logseq application, intending them to be loaded by the system. What makes Emacs different is that I have access to all the underlying functions right inside the editor. I could use Emacs to extend Emacs' own functionality, life, while I'm using Emacs.
If I wanted to interact with an API endpoint and take it's output and feed it through an Org-Mode capture template, it likely wouldn't hard. Doing that in Logseq requires writing a plugin using its Javascript API in an external editor, and packaging it up, loading it into the software, testing within the software in developer mode, then going back to my code editor to address errors and refine the tool. The development loop is just way more cumbersome.
Anyway, I could go on and on. Is anyone else using Emacs here?
Running emacs ontop of windows is pretty tough. Maybe using emacs within WSL could help that.
I know in windows there's no posix ls command so emacs has to emulate it in lisp.
I tried to get powershell working out of curiosity but it was a disaster. Eshell is actually good enough for most tasks I've learned. But yeah, emacs gets mad of you try replacing the shell with cmd, it comes with a shell that looks a lot line cmd, but isn't? I'm not in front if it right now, but its done kind of middle man application.
One of the weirdest things I had to do was change where the home directory was for my profile in my environment variables. ~ would default to some appdata folder instead of my c:/users/username folder.
It's been fine most of the time. But you have to put in the extra work of adding things to your path manually (like JDK for running the languagetool-server.jar file) because Windows doesn't think you would ever want to run an application from the command line...
Winget doesn't make it any easier either. Nothing is standardized. I only use emacs on windows because I use windows at work you manage our domain.