dotemacs
dotemacs copied to clipboard
My GNU/Emacs configuration
fgallina's Emacs configuration.
-
Info
- Author: Fabián Ezequiel Gallina
- Contact: fabian at anue dot biz
- My Blog: http://www.from-the-cloud.com
-
Introduction
This is just my Emacs configuration. It auto-installs all packages using mostly elpa and some from el-get.
For a glance of all installed packages check all `user-package' declarations.
-
Requirements
These are the necessary packages for all enabled plugins.
- Emacs 24.x
- Bazaar: for package downloads.
- CVS: for package downloads.
- Git: for package downloads and magit.
- Mercurial: for package downloads.
- SVN: for package downloads.
- leiningen 2.x: for nrepl and friends.
- python (2.6 or 2.7): for building jedi.
See "Disabling packages" section for a way to avoid some requirements.
** Arch GNU/Linux Installation of all requirements in Arch is quite simple.
#+BEGIN_SRC sh sudo pacman -S bzr cvs git mercurial subversion emacs python2 #+END_SRC
** Ubuntu
#+BEGIN_SRC sh sudo apt-get install bzr cvs git mercurial subversion emacs python #+END_SRC
- Installation
When you meet all requirements, everything should install automatically after you launch Emacs. If some package fail because of a network connection failure or anything, restarting Emacs will continue installation from that point.
There are 3 non-required important files you might want to check out:
- ~/.emacs.d/secrets.el: This is a file I'm using to store my IRC password and other sensible stuff.
- ~/.emacs.d/pre-startup.el: This file might contain any lisp that's intended to be run before all packages are loaded and initialized.
- ~/.emacs.d/post-startup.el: This file might contain any lisp that's intended to be run after all packages are loaded and initialized.
If you are using jedi, you need to install a python environment for it to use. You can do so like this:
#+BEGIN_SRC sh cd ~/.emacs.d/elpa/jedi-* make requirements PYTHON=python2 # or the python interpreter of your preference. #+END_SRC
If you plan to use the clojure related packages you need to install leiningen. Generally you want to do this manually by adding the executable in your =$PATH=. See http://leiningen.org/ for instructions.
- Disabling packages
If you don't want to install some packages you can use the pre-startup.el file to modify the =my:disabled-packages= variable.
#+BEGIN_SRC emacs-lisp ;;; pre-startup.el ;; Avoid installing/loading some packages. (setq my:disabled-packages '(ace-jump-mode jedi clojure-mode)) #+END_SRC
If you plan byte-compiling the init file (which is recommended) via the =byte-compile-file= or =emacs-lisp-byte-compile= command (i.e. not in batch mode), be sure to eval =my:disabled-packages= new value and then eval the whole init.el buffer, so the =user-package= macro is expanded properly for newly enabled/disabled packages.
- Confusing stuff
While this dotemacs is maintained with the idea that it could be reused by anyone, it's still my dotemacs and it's configured the way I like it. This means that there may be some stuff you could consider weird, so here is a non extensive listing of those and the ways you can prevent them.
** God mode
God mode is awesome, it brings the modal bindings paradigm to Emacs
without trying to change the bindings you've learned during all this
time. The thing is that god-mode
can be confusing, especially if you
haven't set it up yourself and are using this config out of the
box. You can disable it by adding god-mode
to your
my:disabled-packages
in the pre-startup.el
file.
** Smartparens
If you feel some bindings are doing weird things when working with
parens or sexps, please check the smartparens
configuration. If you
are still not convinced about smartparens just add the following to
You can disable it by adding smartparens
to your
my:disabled-packages
in the pre-startup.el
file.
** Errors when copying or pasting stuff
I use Emacs on the terminal for the most part, and I have integrated
it with the xsel
utility to make it populate my X system clipboard
when sending doing copy/cut/paste.
If you are experiencing errors with this: either install xsel, change
the integration to use whatever utility you'd like or just disable the
feature completely and let Emacs behave by default by adding this code
in your post-startup.el
file:
#+BEGIN_SRC emacs-lisp (setq interprogram-cut-function nil interprogram-paste-function nil) #+END_SRC
** Menu bar, scroll bar and tool bar
If you are new to Emacs you will probably want to have these things
activated again, to restore then add the following in your
post-startup.el
:
#+BEGIN_SRC emacs-lisp (menu-bar-mode 1) (scroll-bar-mode 1) (tool-bar-mode 1) #+END_SRC
-
Bug Reports
If you find a configuration bug please report it in the github tracker. Any package bugs must be reported in their upstream bug tracker.
-
License
See each package located at =~/.emacs.d/el-get/= and =~/.emacs.d/elpa/= for their licenses. The =~/.emacs.d/init.el= file is on the public domain.