Here goes my mighty dot-emacs file. The mighty key-bindings are courtesy of Andre Polonsky – thanks for that mate!!
(menu-bar-mode -1)
(toggle-scroll-bar -1)
(tool-bar-mode -1)
(blink-cursor-mode 0) ; don't blink cursor
(transient-mark-mode t) ; make the current 'selection' visible
(delete-selection-mode t) ; delete the selection area with a keypress
(setq search-highlight t ; highlight when searching...
query-replace-highlight t) ; ...and replacing
(fset 'yes-or-no-p 'y-or-n-p) ; enable one letter y/n answers to yes/no
;; don't show startup messages
(setq inhibit-startup-message t
inhibit-startup-echo-area-message t)
;; set frame title / icon title using filename or buffername and current date
;; little trick to replace /home/foo with ~ (www.emacswiki.org/cgi-bin/wiki/ShadyTrees)
(defun djcb-title-format ()
(if buffer-file-name
(replace-regexp-in-string "\\\\" "/"
(replace-regexp-in-string (regexp-quote (getenv "HOME")) "~"
(convert-standard-filename buffer-file-name)))
(buffer-name)))
(setq
frame-title-format '(:eval (concat (url-get-normalized-date) " " (djcb-title-format)))
icon-title-format '(:eval (concat "emacs:" (djcb-title-format))))
;; Backups
(setq make-backup-files t ; do make backups
backup-by-copying t ; and copy them ...
backup-directory-alist '(("." . "~/.emacs.d/backup/")) ; ... here
version-control t
kept-new-versions 2
kept-old-versions 5
delete-old-versions t)
;; full-screen mode
;; based on http://www.emacswiki.org/cgi-bin/wiki/WriteRoom
;; toggle full screen with custom keybinding; require 'wmctrl'
;; http://stevenpoole.net/blog/goodbye-cruel-word/
(defun djcb-full-screen-toggle ()
(interactive)
(shell-command "wmctrl -r :ACTIVE: -b toggle,fullscreen"))
(defun djcb-maximize-screen-toggle ()
(interactive)
(shell-command "wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz"))
;; change caps- to hyper-key
(shell-command "xmodmap -e 'remove lock = Caps_Lock' && xmodmap -e 'keycode 66 = Hyper_L' && xmodmap -e 'add mod3 = Hyper_L'")
;; org-mode / remember-mode
;; we use org-mode as the backend for remember
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
;(org-remember-insinuate)
(setq org-directory "~/.emacs.d/org/")
(setq org-default-notes-file (concat org-directory "/notes.org")
org-agenda-files (list (expand-file-name org-directory)
(concat (expand-file-name org-directory) "/todo.org"))
org-agenda-include-diary t)
;; org-latex.el
(autoload 'org-export-as-latex-batch "org-export-latex")
(autoload 'org-export-as-latex-to-buffer "org-export-latex"
"Call `org-exort-as-latex` with output to a temporary buffer" t)
(autoload 'org-replace-region-by-latex "org-export-latex"
"Replace the region from BEG to END with its LaTeX export." t)
(autoload 'org-export-region-as-latex "org-export-latex"
"Convert region from BEG to END in `org-mode' buffer to LaTeX." t)
(autoload 'org-export-as-latex "org-export-latex"
"Export current buffer to a LaTeX file." t)
;; start with my todo-list
(find-file "~/.emacs.d/org/todo.org")
;; Custom Colors from Dirk Binnema
; (set-background-color "black")
; (set-foreground-color "lightblue")
;
; (set-face-foreground 'font-lock-string-face "#123467") ;
; (set-face-foreground 'font-lock-comment-face "#aaaaaa") ;
; (make-face-italic 'font-lock-comment-face)
;
; (set-face-foreground 'font-lock-keyword-face "lemonchiffon") ;
; (make-face-bold 'font-lock-keyword-face)
;
; (set-face-foreground 'font-lock-string-face "#ffffff") ;
; (set-face-foreground 'font-lock-preprocessor-face "red") ;
; (set-face-foreground 'font-lock-constant-face "green") ;
;
; (set-face-foreground 'font-lock-type-face "lightblue")
; (make-face-bold 'font-lock-type-face)
;
; (set-face-foreground 'font-lock-function-name-face "darkcyan")
; (set-face-foreground 'font-lock-variable-name-face "darkgreen")
;
; (set-face-foreground 'font-lock-warning-face "yellow")
; (set-face-underline 'font-lock-warning-face "red")
;
(set-face-background 'region "#777777")
(set-face-foreground 'mode-line "#777777")
(set-face-background 'mode-line "#333333")
;; The Sane Emacs Keybindings
; I included the bindings directly into my .emacs, so the load-file is no longer necessary
;(load-file "~/.emacs.d/bindings.el")
;; auxiliary functions
(defun DefGlobKey (k b)
(define-key global-map (read-kbd-macro k) b) )
(defun DefSrchKey (k b)
(define-key isearch-mode-map (read-kbd-macro k) b) )
(defun other-other-window ()
(interactive)
(other-window -1))
(defun yank-push ()
(interactive)
(yank-pop -1))
(defun move-n-lines (n)
(scroll-up n))
(setq scroll-preserve-screen-position t)
(defun scroll-one-left ()
(interactive)
(backward-char)
(scroll-left -1))
(defun scroll-one-right ()
(interactive)
(forward-char)
(scroll-right -1))
(defun scroll-one-up ()
(interactive)
(move-n-lines -1))
(defun scroll-one-down ()
(interactive)
(move-n-lines 1))
(defun page-up ()
(interactive)
(move-n-lines (- 1 (window-height))))
(defun page-down ()
(interactive)
(move-n-lines (- (window-height) 1)))
;; basic movement
(DefGlobKey "H-j" 'backward-char)
(DefGlobKey "H-l" 'forward-char)
(DefGlobKey "H-i" 'previous-line)
(DefGlobKey "H-k" 'next-line)
(DefGlobKey "H-u" 'beginning-of-line)
(DefGlobKey "H-o" 'end-of-line)
(DefGlobKey "H-M-j" 'backward-word)
(DefGlobKey "H-M-l" 'forward-word)
(DefGlobKey "H-M-i" 'backward-paragraph)
(DefGlobKey "H-M-k" 'forward-paragraph)
(DefGlobKey "H-M-u" 'page-up)
(DefGlobKey "H-M-o" 'page-down)
(DefGlobKey "H-J" 'scroll-one-left)
(DefGlobKey "H-L" 'scroll-one-right)
(DefGlobKey "H-I" 'scroll-one-up)
(DefGlobKey "H-K" 'scroll-one-down)
(DefGlobKey "H-U" 'beginning-of-buffer)
(DefGlobKey "H-O" 'end-of-buffer)
(DefGlobKey "H-." 'isearch-forward)
(DefGlobKey "H-m" 'isearch-backward)
(DefGlobKey "H-M-." 'isearch-forward-regexp)
(DefGlobKey "H-M-m" 'isearch-backward-regexp)
(DefGlobKey "H-M-," 'recenter)
;; basic editing
(DefGlobKey "H-æ" 'advertised-undo)
(DefGlobKey "H-M-æ" 'redo)
(DefGlobKey "H-ø" 'backward-delete-char-untabify)
(DefGlobKey "H-M-ø" 'delete-char)
(DefGlobKey "H-p" 'kill-whole-line)
(DefGlobKey "H-M-p" 'kill-line)
(DefGlobKey "H-" 'set-mark-command)
(DefGlobKey "H-M-" 'exchange-point-and-mark)
(DefGlobKey "H-M-å" 'mark-paragraph)
(DefGlobKey "H-å" 'mark-whole-buffer)
(DefGlobKey "H-M-h" 'kill-region)
(DefGlobKey "H-h" 'kill-ring-save)
(DefGlobKey "H-y" 'yank)
(DefGlobKey "H-M-y" 'yank-pop)
(DefGlobKey "H-Y" 'yank-push)
(DefGlobKey "H-n" 'replace-string)
(DefGlobKey "H-M-n" 'replace-regexp)
(DefGlobKey "H-_" 'fill-region)
;; basic control
(DefGlobKey "H-q" 'save-buffer)
(DefGlobKey "H-M-q" 'write-file)
(DefGlobKey "H-w" 'find-file)
(DefGlobKey "H-r" 'switch-to-buffer)
(DefGlobKey "H-M-r" 'next-buffer)
(DefGlobKey "H-e" 'kill-this-buffer)
(DefGlobKey "H-M-e" 'save-buffers-kill-emacs)
(DefGlobKey "M-E" 'kill-this-buffer)
(DefGlobKey "M-J" 'previous-buffer)
(DefGlobKey "M-L" 'next-buffer)
(DefGlobKey "H-M-s" 'ess-eval-buffer-and-go)
(DefGlobKey "H-s" 'ess-eval-region-and-go)
(DefGlobKey "H-t" 'tex-compile)
(DefGlobKey "H-a" 'term)
(DefGlobKey "H-A" 'shell)
(DefGlobKey "H-F" 'djcb-maximize-screen-toggle)
(DefGlobKey "H-f" 'djcb-full-screen-toggle)
(DefGlobKey "H-M-z" 'split-window-horizontally)
(DefGlobKey "H-z" 'split-window-vertically)
(DefGlobKey "H-x" 'delete-window)
(DefGlobKey "H-M-x" 'delete-other-windows)
(define-key global-map [H-tab] 'other-window)
(define-key global-map [H-M-tab] 'other-other-window)
;; search mode
(DefSrchKey "H-m" 'isearch-repeat-backward)
(DefSrchKey "H-." 'isearch-repeat-forward)
(DefSrchKey "H-M-m" 'isearch-repeat-backward)
(DefSrchKey "H-M-." 'isearch-repeat-forward)
(DefSrchKey "H-," 'isearch-query-replace)
(DefSrchKey "H-M-," 'isearch-query-replace-regexp)
(DefSrchKey "H-/" 'isearch-complete)
(DefSrchKey "H-M-/" 'isearch-toggle-case-fold)
(DefSrchKey "H-?" 'isearch-toggle-regexp)
(DefSrchKey "H-n" 'isearch-cancel)
(DefSrchKey "H-M-n" 'isearch-exit)
;; other features
;;help
;(DefGlobKey "H-f" 'describe-key)
;(DefGlobKey "H-M-f" 'describe-function)
;; I do not use Lisp yet, but constantly get into the evaluation queue, so I comment away these
;lisp
;(DefGlobKey "H-" 'eval-defun)
;(DefGlobKey "H-M-" 'eval-region)
[...] Post to WordPress by Email 17 08 2009 I started posting by email to rforge after loosing content on severel occasions by accidentially hitting the hyperkey on my Thinkpad (which is bound to CapsLock in connection with my Emacs keybindings). [...]