25

GitHub - novoid/dot-emacs: My GNU/Emacs configuration

 5 years ago
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
  • atgrz*
    • Windows 7 Pro with native Windows GNU/Emacs 64bit and Babun
      • (therefore) not as “capable” as gary
  • outdated:
    • gary
      • Debian GNU/Linux 7 (wheezy)
      • predecessor of X260
    • blanche
      • OS X 10.5
      • pimped with MacPorts
      • predecessor of sherri

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

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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK