The more I'm learning more about the above, the more I'm believing that most computer problems has been solved since a long time and the focus should be on improving and creating new tools, not reinventing them.
PS: Spreadsheets are nice too, but they're still lacking the surrounding helpers that would make them great. There's VBA in excel, but I'm thinking about more like dynamic table that's linked to an endpoint or some commands (Unix's ps). I haven't explored tools like Airbase to see if they fit that vision.
Every time you modify it, you are improving your workflow. Those changes compound over time so that the system is always familiar, which makes interacting with text, the filesystem, network, and anything else you can manipulate with Elisp, that much easier, faster, and more comfortable. What you end up with is a system that is unique to you. A system that does what you want the way you want it, and never changes unless you want it to. In a world where software constantly changes and breaks, where new editors appear and disappear, using your own version of Emacs is incredibly comforting. There are no surprises, no rugpulls, no radical UI redesigns, no sneaky telemetry or tracking, no ads, no nagware, and so on. Anything you don't like can be removed, changed, or improved.
It's not perfect, of course. It's slow, alien in many ways, lags behind in features of modern editors, and has a brutally steep learning curve, especially if you're not familiar with Lisps. It may take you years to appreciate it, and a lifetime to understand it. But that's OK. You don't need to understand all of it. As long as you start the journey, you can learn on the way, and your experience will keep improving.
then read Dominik's outline-magic.el
then see how far you can get with your own customizations on top of that to augment, e.g. plain markdown text
you may find you're doing well at that point and don't need to deal with the 100k+ line beast that is Org, nor its transitive dependencies
at that point you will really understand (that part of) Emacs, and will no longer see Org as "a discrete thing", but just "some code someone else wrote" that you can take or leave
- popping the global mark to travel backwards to previous edit points would reuse the same Emacs window instead of using a window that is already showing the buffer. Fixed
- I would accidentally destroy my window configuration w/ C-x 1. Fixed, use advice to automatically save the window configuration into a register if I invoke the command to remove all other windows. Now I can easily recover if I make that mistake.
- I want to be able to select and then scroll any other open window w/o leaving the current one. Fixed
- A crazy one. I collect note w/ links or whatever for reading/watching later, these are marked w/ a timestamp. My notes file is not an agenda file, i.e. not filled with todos / tasks. I made a hack to temporarily include the current non-agenda org-mode buffer in the agenda list and then show inactive timestamps. Now I can scan a day/week/month for interesting notes I took. This doesn't interact at all with my real agenda.
- org-agenda opens items in weird places, use advice to fix it so that it always appears where I like.
- fix inf-clojure so that it uses dep.edn as project root over .git
I used IntelliJ happily for 10 years (I was a heavy Emacs user for 10 years before that). While it's true that some things are a little less convenient (I don't use LSP), knowing that I can tailor things exactly to my tastes is a serious breath of fresh air.It used to be I mostly used IntelliJ for work/OSS and Emacs for org-mode. Now the situation is likely reversed. Emacs for work/OSS and IntelliJ only if I need step debugging/global refactoring.
I seldom care about the inner workings of emacs and will do the absolute minimum to get it to work the way I want and then move on. I'm reminded over and over again that Emacs patinas really nicely with poorly written elisp in an init file over time.
Case in point, I found that org-export is super slow. After profiling it, I found the slow function, copied it, removed the slow part, and advice-add it right back in there[0]. Might this break some other deeply intertwined behavior someplace else? Probably. Does it matter if I'm the only one using it? Nope.
[0]https://github.com/alexkehayias/emacs.d/blob/master/init.el#...