I started with a very simple init.el
when I started using Emacs.
Rather than learning it in a structured manner, I just decided to jump in at whatever end of the pool and figure it out as I go.
I may not know Emacs, but I do know what I want out of a general purpose text editor.
And bending Emacs to do my will, to do what I want it to do or behave in the manner I want it to behave. And Emacs to my eternal gratitude, is flexible to do all I want, thanks to the last forty six years worth of hard work and ideas of people from all over.
Want your screen to be a certain width, because you miss CGA screens? Emacs can do that.
Want your font to be monospaced, because it helps you write? Emacs can do that.
Want to tweak the space between your lines, because your font looks better that way? Emacs can do that.
Want to save your place in the file, so you can come back to where you were? Emacs can do that.
Themes? Want your editor to look a certain way? Emacs can do that.
Love Markdown? Emacs does that.
That’s just the core editor and that’s just me setting up my writing environment.
That’s just me scratching the surface.
I haven’t scratched the universe that is setting it up as an IDE, or using it as a Git frontend, or to read mail, or be an IRC client or play games or the million other things it can do.
As, for me, I have slowly branched out my use of Emacs too.
In addition to its use as a daily general purpose text editor, I use Emacs in three specific domains.
- As an editor for all my blog posts, and prose writing. I use Markdown Mode to accomplish this.
- As a second brain. To write down notes and references and ideas and to link them all together. A syntopical sort of linking. A Zettelkasten, in fact. Org Roam is the tool I am using to build this edifice.
- And as a tool to manage my productivity, my day and my sanity using the awesome Org Mode.1
Which brings me to my current conundrum.
All those tweaks I mentioned above?
They are all in a file called the init.el
, which Emacs reads everytime it starts up.
And given my propensity to be a control freak, while at the same time verbosely documenting every change I make, my file had already grown to 300 lines and counting.
Going back to read stuff and change existing things meant scrolling up and down or searching across 300 odd lines.
And I quickly tired of that.
Which is when I learnt Emacs let me organise my init
files too!
Between learning to load lisp files and how to organize my init files, I quickly divided my main file into a total of four files.
- The base
init.el
file, containing things I thought were absolutely needed2 - A miscellaneous file, that would hold everything else Emacs.3
- A file to hold my Org Roam Zettelkasten settings.
- A file to hold my Org Mode settings.
And then, within my base file, I called the other three, like so … 4
(load "~/.config/emacs/emacs-misc-settings.el")
(load "~/.config/emacs/emacs-org-mode-settings.el")
(load "~/.config/emacs/emacs-org-roam-settings.el")
And that gave me space to breathe :)
Everything is now properly organised.
I can just go look in the appropriate file (or add one) for the appropriate setting.
And life is peachy again.
Of course, once again, I am barely scratching the surface, compared to other folks’ vastly elaborate setups.
But this works for me, and I’m really happy!
P.S. Subscribe to my mailing list!
Forward these posts and letters to your friends and get them to subscribe!
P.P.S. Feed my insatiable reading habit.
The principles, of course are Cal Newportian. ↩︎
font, package installs, theme, backup folder ↩︎
nearly everything else, I mentiond above, page column width, line height, recent file, save place, etc ↩︎
I’m sure there are better ways of writing this, but I didn’t want to go bikeshedding ↩︎