GitHub - novoid/dot-emacs: My GNU/Emacs configuration
source link: https://github.com/novoid/dot-emacs
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.org
My GNU/Emacs configuration folder
General Structure
As of 2017-05, I moved my Emacs configuration format from OrgStruct mode to Org-mode babel + tangle. Originally, I found this process on http://www.holgerschurig.de/en/emacs-init-tangle/ However, I adapted its code and write additional features. I also simplified the file structure, threw away old stuff and added tons of comments for my configuration.
Now, my Emacs configuration is in a file named config.org
. My
init.el
got some nifty Elisp code that converts/tangles (only) the
Elisp blocks into the config.el
. This generated file is interpreted
by my GNU/Emacs on startup.
Please do read my blog article on how this Emacs configuration works.
Stuff Which Is Not Contained in the Git Repository
Please take a look at my .gitignore
file that contains some things I
did not add to this git repository for a variety of reasons but are
necessary for my configuration. Most important here is the directory
contrib
which holds a number of external packages:
- Currently (2017-05-26), this directory holds:
- cygwin-mount.el
- ews-orgmode/
- goto-chg.el
- message-outlook.el
- move-text/
- ob-restclient.el/
- orgaggregate/
- org.el
- org-import-calendar.el
- org-mode/
- org-protocol-capture-html/
- outlookedit.el
- outshine/
- pdf-mode/
- pylookup/
- raml-mode/
- setup-cygwin.el
- sunrise-commander/
- vcard-mode/
- wc.el
In Case You Want to Use My Configuration
In short: don’t.
Not because I don’t like you to have my configuration. It is not easy
to accomplish because I left out some parts like the contrib
directory as explained above. Some of my settings are host-specific
and/or depend on path variables or external tools.
You should only adopt Elisp code you need and understand to avoid Emacs Bankruptcy.
Therefore: please feel free to look up certain tricks and functions and add it to your configuration. But don’t use my repository as is and expect it to run on your host.
Best Navigation Experience
For navigating through my config.org
file, please do open it in
Emacs so that you are able to collapse and expand headings.
Host-Names
Some settings as specific for certain platforms or host names. The host names mentioned here are:
- sherri
- Debian GNU/Linux 8 (jessie)
- my main working horse at home
- X260
- Debian GNU/Linux 8 (jessie)
- my main working horse on the road
- grmlvrs/kva
- Debian GNU/Linux 7 (wheezy)
- (therefore) not as “capable” as sherri/X260
- Debian GNU/Linux 7 (wheezy)
- atgrz*
- Windows 7 Pro with native Windows GNU/Emacs 64bit and Babun
- (therefore) not as “capable” as gary
- Windows 7 Pro with native Windows GNU/Emacs 64bit and Babun
- outdated:
- gary
- Debian GNU/Linux 7 (wheezy)
- predecessor of X260
- blanche
- OS X 10.5
- pimped with MacPorts
- predecessor of sherri
- gary
With 2016-04, I switched from using my-system-is-HOSTNAME
to
my-system-type-is-OPERATINGSYSTEM
instead for most cases. This
lowers the effort of using Emacs on many computers.
Emacs 24
As with 2014-01-19, I totally migrated to GNU/Emacs 24 on all of my systems.
I therefore migrated my config to use the package management provided by Emacs 24. As a result, there are much less entries in the folder “contrib” and there is a new folder called “elpa”. I did not include elpa-packages in this git repository.
On 2016-04-24, I had following packages installed via elpa:
anzu-20160404.2218 async-20160223.146 avy-20160402.1049 avy-menu-20160126.425 bind-key-20160227.48 char-menu-20160203.2215 company-20160325.1650 counsel-20160411.713 dash-20160306.1222 diminish-20151215.915 edit-at-point-20150716.624 elpy-20160131.118 eno-20160110.234 find-file-in-project-20160404.2330 git-commit-20160412.130 helm-20160413.2223 helm-core-20160415.2250 highlight-indentation-20150307.208 highlight-symbol-20160102.1209 ht-20150830.1115 magit-20160412.128 magit-popup-20160408.156 markdown-mode-20160409.650 neotree-20160306.730 nyan-mode-20151017.2235 org-30000101 org-bullets-20140918.1137 ox-pandoc-20151222.1553 ox-reveal-20160224.1819 popup-20160409.2133 pyvenv-20160108.28 restclient-20160407.146 rich-minority-20151201.400 smart-mode-line-20160306.1103 smeargle-20151013.2242 spray-20160304.1420 swiper-20160412.130 synonyms-20160328.654 undo-tree-20140509.522 use-package-20160403.1129 with-editor-20160408.201 yafolding-20141202.2056 yasnippet-20160410.833
I also tested Emacs prelude for a couple of days. However, I was not very happy about it due to performance issues, unwanted behavior, and the feeling of losing control.
Please note that org-30000101
is a manually created and installed
pseudo-package to prevent the installation of Org-mode via package
manager. I am using the Org Maint version from git directly (within my
contrib
directory).
Useful References
- http://www.emacswiki.org/emacs/CategoryDotEmacs
- http://www.emacswiki.org/emacs/LoadPath
$HOME/.emacs.d/lisp/
seems to be quite common as directory path for installing external packages- However, I do prefer “contrib” instead of “lisp” because:
- my own config (outside of
$HOME/.emacs.d/lisp/
) is LISP as well - “lisp” does not contain the notion of “contributed from other people/projects”
- my own config (outside of
License
The code provided here is licensed under a GPL v3 license: see
license.txt
for details. Some smaller parts from other authors but
included in my configuration might have a different license. Please
check the source - it’s included in the comments.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK