Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Emacs configuration file with many packages already enabled and a more pleasant set of defaults
branch: master
Failed to load latest commit information.
Pictures Add pictures for VC status in mode line
site-lisp Add hideshowvis in MELPA packages
snippets Remove useless file
.emacs-minimal.el Capitalize correctly the comments Update email address Update copyright year
bigblow-pirilampo.setup Add SETUPFILE
emacs-leuven.el Remove obsoleted call to `vc-workfile-unchanged-p'
emacs-leuven.txt Remove obsoleted call to `vc-workfile-unchanged-p'
emacs-minimal Fix warnings reported by FlyCheck
emacs-minimal.html Capitalize correctly the comments
emacs-minimal.txt Capitalize correctly the comments
gnus-leuven.el Add connection timeout for NNTP
gnus-leuven.html Add connection timeout for NNTP
gnus-leuven.txt Add connection timeout for NNTP
org-custom-agenda-views.el Update HTML style files
org-custom-agenda-views.html Add comment
org-custom-agenda-views.txt Add comment
org-test-fni.el Improve documentation of main function
org-test-fni.html Update copyright year
org-test-sample.html Add sample file for testing the Org export
todo-apps-for-gtd.html Update HTML style files
todo-apps-for-gtd.txt Add link to other alternatives

Emacs Leuven

Looking for an Emacs configuration file with many packages already enabled and a more pleasant set of defaults? Here’s the place to find one!

The “Emacs Leuven” configuration file is packaged as an Emacs Lisp library, and ready to be used by you.

And it is optimized to keep the Emacs startup time fast (around 2 seconds)!


Get the full Git repository at using the following command:

git clone git://


Using the Emacs Leuven library is very easy: you just need to…

  • Download and install emacs-leuven.
    ;; Make sure `emacs-leuven.el' is in your `load-path'.
    (add-to-list 'load-path "/path/to/emacs-leuven")
    ;; Require it as normal.
    (require 'emacs-leuven)
    ;; Place your settings here, which can override the settings of Emacs-Leuven.
  • Restart Emacs.

Some better defaults

  • Unnecessary spaces at the end of the lines are indicated by red blocks.


To list packages which should be installed by Emacs Leuven, add something like this into your configuration file:

(setq leuven-elpa-ignored-packages

Keyboard shortcuts

Save time and boost your productivity with Emacs Leuven keyboard shortcuts.

Key binding conventions:

General shortcuts

Global key bindings.

Shortcut What it runs
<f1> info
<S-f1> man-follow
<C-f1> info-lookup-symbol
<f2> save-buffer
<S-f2> org-save-buffer-and-do-related
<C-f2> (for interaction-log mode)
<f3> find-file (or helm-for-files)
<f4> helm-imenu
<M-f4> save-buffers-kill-terminal
<f5> delete-other-windows
<f6> other-window
<C-f6> balance-windows
<f7> leuven-babel-translate
<f8> call-last-kbd-macro
<S-f8> leuven-toggle-kbd-macro-recording-on/off
<C-f8> name-last-kbd-macro
<f9> recompile
<S-f9> make-clean
<C-f9> leuven-vc-jump
<f10> next-error
<S-f10> previous-error
<C-f10> first-error
<f11> undo
<S-f11> redo
<C-f11> bbdb
<f12> bury-buffer
<S-f12> leuven-kill-this-buffer-without-query
<C-f12> leuven-revert-buffer-without-query

Shortcuts for Org mode

Shortcut What it runs
<S-f2> org-save-buffer-and-do-related
<C-f3> leuven-org-todo-list-current-dir
<f4> helm-org-headlines
<M-f6> visible-mode
C-M-] org-cycle-global ;; <S-tab>
M-] org-cycle-local
C-c l org-store-link
C-c c org-capture
C-c b org-switchb
C-c a org-agenda
C-c L org-insert-link-global
C-c o org-open-at-point-global
C-c C-b org-switch-to-agenda
C-c h hide-other
\C-\M-n outline-next-visible-heading
\C-\M-p outline-previous-visible-heading
\C-\M-u outline-up-heading
C-c C-x f org-footnote-action
C-c C-x C-i org-clock-in
C-c C-x C-j org-clock-goto
C-c C-x C-o org-clock-out
C-c C-x C-q leuven-org-clock-in-interrupted-task
( leuven-org-agenda-toggle-tasks-details
C-c C-e org-export-dispatch
M-P htmlize-buffer
C-c C-e h o htmlize-view-buffer
M-; leuven-org-comment-dwim
C-M-\ leuven-org-indent-region
C-c C-v C-d org-babel-demarcate-block
C-c m org-mime-subtree
C-c m leuven-mail-subtree
N leuven-org-agenda-new
Z leuven-org-agenda-mark-done-and-add-followup

Shortcuts for Dired

Shortcut What it runs
<return> dired-single-buffer
<mouse-1> dired-single-buffer-mouse
^ (anonymous function)
e browse-url-of-dired-file
E w32-dired-open-files-externally
C-c 1 find-name-dired
C-c 2 find-grep-dired
C-c 3 rgrep

Other shortcuts

Shortcut What it runs
<return> newline-and-indent
C-c SPC ace-jump
C-) match-paren
C-c @ h hs-hide-block
C-c @ s hs-show-block
x leuven-vc-dir-hide-up-to-date-and-unregistered
E vc-ediff
= leuven-vc-diff
M-? etags-select-find-tag-at-point
C-c e ecb-minor-mode
M-/ hippie-expand
<tab> ac-expand

Other shortcuts

I still have to sort them out, by mode (when applicable).

Shortcut What it runs
< scroll-calendar-right
<C-backspace> backward-kill-word
<C-down> comint-next-matching-input-from-input
<C-S-left> hs-hide-block
<C-S-right> hs-show-block
<C-S-up> hs-hide-all
<C-S-down> hs-show-all
<C-S-tab> w3m-previous-buffer
<C-tab> w3m-next-buffer
<C-up> comint-previous-matching-input-from-input
<down> comint-next-input
<left> speedbar-contract-line
<next> pager-page-down
<prior> pager-page-up
<right> speedbar-expand-line
<S-return> leuven-ess-eval
<tab> w3m-next-anchor
<up> comint-previous-input
> scroll-calendar-left
C-$ flyspell-buffer
C-* leuven-hlt-highlight-current-word
C-= compare-windows
C-c ! shell
C-c . leuven-insert-current-date
C-c | leuven-toggle-window-split
C-c ^ sort-lines
C-c C-c tidy-buffer
C-c C-x nil
C-c d l dictionary-lookup-definition
C-c d m dictionary-match-words
C-c d s dictionary-search
C-c g g leuven-google-search
C-c g r leuven-google-search-region
C-c g s google
C-c g w leuven-google-search-word-at-point
C-c n
C-c o helm-occur
C-c q boxquote-region
C-c s yas-insert-snippet
C-c t toggle-truncate-lines
C-c T multi-term
C-c z toggle-full-screen
C-c ~ leuven-swap-windows
C-h A apropos-variable
C-h E elisp-index-search
C-M-$ leuven-flyspell-toggle-dictionary
C-o leuven–isearch-occur
C-o occur
C-S-n hlt-next-highlight
C-S-p hlt-previous-highlight
C-t w3m-new-tab
C-w w3m-delete-buffer
C-x b helm-buffers-list
C-x C-b electric-buffer-list
C-x C-b ibuffer
C-x p proced
C-x r b helm-bookmark-ext
C-x r l helm-bookmarks
F w3m-view-next-page
f leuven-w3m-go-to-link-number
M– ess-smart-underscore
M-G what-line
M-p ps-print-buffer-with-faces
M-x helm-M-x
U leuven-w3m-goto-url



Report issues and suggest features and improvements on the GitHub issue tracker.


I love contributions! Patches under any form are always welcome!


If you like the emacs-leuven project, you can show your appreciation and support future development by making a donation through PayPal.

Regardless of the donations, emacs-leuven will always be free both as in beer and as in speech.


Copyright (C) 1999-2015 Free Software Foundation, Inc.

Author: Fabrice Niessen
Keywords: emacs configuration file

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

Something went wrong with that request. Please try again.