hhnr / .emacs.d-1

My emacs configuration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

modi .emacs.d

NOTE: My emacs setup is tested to work only with emacs 24.5 and newer versions. If you are on older versions, I would recommend that you upgrade to the latest available stable version.

Using my emacs setup

You can start using my emacs setup by following these steps:

  1. curl https://raw.githubusercontent.com/kaushalmodi/.emacs.d/master/git_force_update.csh >! git_force_update.csh && chmod 744 git_force_update.csh. This script basically git clones my config and all sub-modules that I rely on (mine + others).
  2. source git_force_update.csh ~/.emacs.d if you want to download this config to ~/.emacs.d/ directory. If the download location you specify already exists, a backup of it will be created first.
  3. Edit the user-emacs-directory var in the just downloaded init.el IF needed BEFORE starting emacs using this config.

    If you ran source git_force_update.csh ~/.emacs.d in Step 2 above, you will not need to change any variable. But if you did source git_force_update.csh <SOME_OTHER_DIR>, you will need to change the value of user-emacs-directory in <SOME_OTHER_DIR>/init.el to <SOME_OTHER_DIR>.

  4. Start emacs as usual if you did not change the download location in Step 2. If you DID change the download location to <SOME_OTHER_DIR>, you will need to do \emacs -Q -l <SOME_OTHER_DIR>/init.el.

That’s it. The first start will take a couple of minutes as it auto-installs all packages in the all-packages list defined in the init.el.

Few notes

  • Few setup files have setup done as per my personal tastes and needs:
    • setup-files/setup-misc.el
    • setup-files/setup-mode-line.el
    • setup-files/setup-registers.el
  • If you want to change the default theme, font size, etc, you would want to edit setup-files/setup-visual.el
  • Any of the variables or global minor modes set in my config can be overridden in setup-personal.el which you need to create in the directory pointed by the variable user-personal-directory.
  • You can also choose to override certain variables in the very beginning of the init.el by customizing the variables in a setup-var-overrides.el file placed in user-personal-directory. You can refer to an example of this file here. During the first time setup, copy the setup-var-overrides-EXAMPLE.el file to setup-var-overrides.el in the same directory.
  • setup-editing.el has interesting elisp snippets that I created + borrowed over time for functions related to general editing.

Key points

  • Use of my minor mode modi-mode to enable my custom key-bindings. Doing so allows me to force override my bindings in all major and minor modes. If I ever need to try out the default emacs bindings, I can simply disable modi-mode by doing M-x modi-mode. It is enabled globally by default.
  • Use of use-package in load all packages for faster load times.
  • Use of bind-keys allows me to review my custom bindings in a single buffer by doing M-x describe-personal-keybindings.
  • Certain packages will be loaded only if you have the associated applications installed.
    • ag
    • ctags
    • global (gtags)
    • git
    • matlab
    • aspell or hunspell
    • ps2pdf
    • xelatex

Feedback

I am looking forward to suggestions, corrections.

Thanks!

About

My emacs configuration

License:MIT License


Languages

Language:Emacs Lisp 98.4%Language:Shell 0.8%Language:CSS 0.4%Language:MATLAB 0.2%Language:SRecode Template 0.1%Language:Makefile 0.1%