Showing content from https://github.com/alezost/emacs-config below:
GitHub - alezost/emacs-config: My ".emacs"
This repository contains my configuration for GNU Emacs.
It is intended to be used only by me, not by other people. Anyway, here are the main features of my config.
- No Org-mode for emacs config because good old
.el
files are much more convenient for me.
- Unusable key bindings: I use hundreds and hundreds of non-standard key bindings that are suitable for me. Besides, I use dvorak layout, so my bindings may look really weird for other people. I use my code (from keys.el) based on bind-key to manage those tons of keys.
- I prefer to split my config into multiple files instead of keeping everything in a single one. And it is really easy to search them using imenus. I just press
s-s
(which is bound to al/imenus-search-elisp-dir
from al-imenus.el) and jump to with-eval-after-load
clause or perform isearch
or occur
if I need to search for something.
- I use an insane mix of quelpa/melpa/GNU Guix to install/upgrade Emacs packages. Do not try this at home ☺.
- My Emacs config is intended to be robust. I mean it does not require any third-party packages to be started successfully. So I can easily deploy my config on a fresh system: I just clone the repo and make ~/.emacs.d/init.el file a symlink to my init.el. Actually, this process is even more simple, as I don’t do this manually — I use my config script to fetch and deploy all my configs including this Emacs config.
- And I don’t use use-package anymore (see commit 2e49f03). I used to do it until I realized the importance of the previous point. When you use
use-package
in your config, it becomes a required dependency for starting Emacs, so on a “fresh” system, you need to install it at first, before you can use your config. Also someday it may be changed in a way that will break your system, and you’ll have to fix your config without using it.
- My Emacs start time is always less than a second according to
M-x emacs-init-time
(actually, I have this value in my initial-scratch-message
so I know the init time very well), because I don’t require
packages without a reason as some people do. Instead, I use with-eval-after-load
everywhere.
As you can see, this repository consists of the following directories:
- init: The files that are loaded on Emacs start. As described above, init.el is the “main” init file. It defines some major things and loads the rest files from this directory.
- utils: These are my various auxiliary small packages with the additional code (for Emacs itself and for external packages) that is not needed for start-up. All of the code there have “al/” prefix and are placed in files that provide “al-…” features. My init files are full of things like:
(with-eval-after-load 'eshell
;; ...
(when (require 'al-eshell nil t)
;; ...
))
So these utils are loaded only if and when they are needed. Also there are many interactive commands there which are autoloaded (I use al/update-autoloads
command to update these autoloads).
In the past these utils were placed in a separate repository and had “utl-” prefix.
- data: Just some Emacs related data (like eshell aliases or my yasnippets) that I use.
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4