Very neat tool. Ive been getting more and more into using emacs. I like the options you provide like disabling the tool bar, line numbers etc. these are quality of life changes that probably everybody goes through.
The most difficult part for me was setting up a LSP with golang. I would say it was difficult because I was trying to rush through by copying random bits from everywhere to make it work.
I did eventually get it to work but then noticed I have no idea modify or tinker with anything without fear of bricking my setup.
So i started fresh and actually made a point to try to understand what each lisp snippet is used for and did my best to just get default
packages without any extra flavor or config all while keeping track of it in git. Its been fun learning lisp.
If you haven't yet I'd recommend going through the tutorial and looking at the elisp manual. Both are accessible if you press `C-h i` (there's a lot of other goodies in the list of manuals you get there, the calc one is great).
Except on Debian and Debian-derived systems. Apparently there's an issue with license compatibility, on those you may need to install this package: emacs-common-non-dfsg.
But on pretty much every other system with a standard emacs install, yes, `C-h i` is all you need to get to the documentation.
Ill definitely give that a go. I feel like I NEED to learn Lisp. My college data structures prof had his own book where all the java examples had a lisp counterpart.
He wouldn’t allow us to use normal Java data structures for assignments rather a lisp data structure called “cons”.
Not sure how different elisp and lisp is but syntax wise they look identical to me.
If you know some Common Lisp, Emacs Lisp isn't hard to learn (and they're even closer than when I learned elisp 15-20 years ago). Some minor gotchas with literal syntax (literal arrays/vectors and chars are represented differently in each) and some differences in their standard libraries. A more major gotcha is elisp's dynamic scope, which comes up if you're used to lexical scope.
In practice, I've never been bitten by this except when I tried to do some fancier functional programming things in elisp that I normally would use another language for. And you can specify that you want lexical scope:
I strongly recommend storing your config in an org file and using Babel to load the init. I find it the only way to preserve my sanity as my config grows.
Org provides a lot more features than an outline mode. Org-babel lets you mix code with prose, and execute (for many languages) the code in the code blocks. It works cleanly with the agenda/diary system. You can schedule items, marking both due and start dates and times. Tag items and query based on tags, it's a very handy thing.
I recognize the advantage of tags, but everything else seems superfluous for a personal configuration. For beginners it just one more thing that can go wrong. I have read dozens of supposedly literate configurations on the web, and most of them are just header, begin_src, code, end_src, repeat. There are rare exceptions, but these cannot be generated automatically.
> but everything else seems superfluous for a personal configuration.
I've not used outline minor mode, but reading up on it, it seems it's merely for presentation vs editing. As an example, can I move a heading and its subtree to another part of the document? Doing so makes managing configs much easier.
> I have read dozens of supposedly literate configurations on the web, and most of them are just header, begin_src, code, end_src, repeat.
Most code I've read is crap. That doesn't mean one can't write code well. My own literate configuration is probably 80+% as you describe, but it's the remaining 10-20% where I do write some prose, with links, etc that make it worthwhile.
I agree that it is yet another level of complexity for beginners. My own personal experience, though, was it would be much harder to debug plain init.el files than the org ones.
In any case, I have no objection to using outline-minor-mode instead. I just think that many users are going to learn org mode sooner or later, and it's less cognitive load to just jump into org mode. I'm pretty sure most people who put their config in outline mode will eventually migrate it to org anyway :-) And I don't see any actual advantage to outline minor mode in general.
I actually switched back to a plain elisp config file instead of having an org file loaded by babel. After spending about a year with an org-mode powered config file I felt like the surrounding "prose" just distracted me. The very few lines of config that required some explanation were easily documented with one or two lines of comments in elisp.
After using it myself and viewing plenty of org-mode powered config files, I feel it's mostly good for people who publish their config files for others to read / learn. But for my own use it felt like just too much verbosity.
The surrounding prose are distdacting, byt surrounding code is even more distracting. Org-mode allows simply folding away stuff not under focus, and it helps a lot with ADHD.
Yes. The idea is you store your init as code blocks in an org file, and you can organize your config into common headings (e.g. all C++ related config goes into the C++ heading, which itself goes under the Programming heading). The other benefit is that you can write prose around the code blocks describing what you're trying to do here (you can do that with comments, but org markup is much richer).
I'm not saying you should do this now. My recommendation is you learn the basics of org mode, and then look up how to do this.
The most difficult part for me was setting up a LSP with golang. I would say it was difficult because I was trying to rush through by copying random bits from everywhere to make it work.
I did eventually get it to work but then noticed I have no idea modify or tinker with anything without fear of bricking my setup.
So i started fresh and actually made a point to try to understand what each lisp snippet is used for and did my best to just get default packages without any extra flavor or config all while keeping track of it in git. Its been fun learning lisp.