;; Erzeugt am: 26.08.2004 12:13:15 CEST ;;; von Peter Breitfeld auf callista.local ;;; Letzte Bearbeitung: ;;; Time-stamp: <12.2.2012 13:49:07 .emacs> ;; ;;; Emacs Konfigurationsdatei von Peter Breitfeld ;; ;; Pfad auf nicht zur Distribution gehörige Pakete (.el / .elc): ;; auch Unterstützung für diverse Mac-spezifische Sachen (setq load-path (cons "~/Library/Application Support/Emacs" load-path)) (add-to-list 'load-path "~/.emacs.d") ; alles in lib/elisp in den load-path aufnehmen (if (fboundp 'normal-top-level-add-subdirs-to-load-path) (let* ((brf-lisp-dir (expand-file-name "~/lib/elisp")) (default-directory brf-lisp-dir)) (setq load-path (cons brf-lisp-dir load-path)) (normal-top-level-add-subdirs-to-load-path))) (setq Info-additional-directory-list '("~/lib/info" "~/lib/elisp/share/info" "/opt/local/share/info" "/usr/local/info" )) ;; wo sind die unicode Daten (let ((x "~/lib/Unicode/UnicodeData.txt")) (when (file-exists-p x) (setq describe-char-unicodedata-file x))) ;; Workaround für Crash bei Dialog-Boxes in Emacs 23.1 MacOSX: (setq use-dialog-box nil) ;;============================================================================== ;; Einige für Mac OS X nötige Einstellungen. ;;============================================================================== ;; Das lädt common-lisp extensions: (require 'cl) ;; damit kann man die Anzeige von Minor-Modes in der Statuszeile unterdrücken (require 'diminish) ;; Klammerpaare anzeigen mit mic-paren (oder doch nicht?): ;(require 'mic-paren) ;(paren-activate) ;; Andere Einstellungen: (unless window-system (menu-bar-mode -1)) (when window-system (msb-mode 1) (tool-bar-mode -1) (set-scroll-bar-mode 'right)) ;; Keys und fades (set-face-foreground 'fringe "gray50") (defun brf-set-alpha (op) "Setzt die Opacity auf angegebenen Wert" (interactive "nOpacity (0-100, default ist 85): ") (set-frame-parameter nil 'alpha op)) ;; fonts anti-aliasing einschalten (setq mac-allow-anti-aliasing t) ; Wörter in Region zählen: (defun brf-count-region (beginning end) "Zähle die Anzahl der Wörter und chars in der Region" (interactive "r") (message "Counting ...") (save-excursion (let (wCnt charCnt) (set wCnt 0) (setq charCnt (- end beginning)) (goto-char beginning) (while (and (< (point) end) (re-search-forward "\\w+\\W*" end t)) (setq wCnt (1+ wCnt))) (message "Words: %d. Chars: %d." wCnt charCnt)))) ;; Recent Files: ;; ============= (condition-case il (make-directory "~/Library/Application Support/Emacs") (error t)) (setq recentf-save-file "~/Library/Application Support/Emacs/Recent Files.el") ;; define a single command to be included in the recentf menu (defun recentf-clearlist () "Remove all files from the recent list." (interactive) (setq recentf-list ()) ) (defvar recentf-menu-items-for-commands (list ["Clear Menu" recentf-clearlist :help "Remove all excluded and non-kept files from the recent list" :active t]) "List of menu items for recentf commands.") (recentf-mode 1) (setq recentf-max-saved-items 50) (setq recentf-menu-before "Insert File...") ;; ============== ;; LaTeX für Mac: ;; ============== (add-hook 'LaTeX-mode-hook (function (lambda () ; (paren-toggle-matching-quoted-paren 1) ; (paren-toggle-matching-paired-delimiter 1) ;; (require 'reftex) (diminish 'reftex-mode) ;; (require 'bib-cite) (bib-cite-minor-mode 1) (setq bib-cite-use-reftex-view-crossref t) (setq bib-highlight-mouse-t nil) (diminish 'bib-cite-minor-mode) ;; (outline-minor-mode 1) (diminish 'outline-minor-mode) (setq outline-minor-mode-prefix "\C-c\C-o") (when (fboundp 'ispell) (flyspell-mode 1)) ;; (defadvice TeX-command-filter (before TeX-pipe-fill activate) (when (< (length string) 80) (sleep-for 0.05))) ))) ;; ------------------- Ende von LaTeX für Mac ------------------------- ;; color-moccur laden (require 'color-moccur) ;; whitespace-mode Einstellungen (setq whitespace-display-mappings '( (space-mark 32 [183] [46]) (newline-mark 10 [182 10]) (tab-mark 9 [8677 9] [92 9]) )) ;; schreibgeschützte Dateien anzeigen und dennoch bearbeiten: (defface brf-find-file-root-header-face '((t (:foreground "white" :background "red3"))) "*Face use to display header-lines for files opened as root.") (defun brf-find-file-root-header-warning () "*Display a warning in header line of the current buffer. This function is suitable to add to `find-file-hook'." (when (string-equal (file-remote-p (or buffer-file-name default-directory) 'user) "root") (let* ((warning "VORSICHT: DU EDITIERST DIE DATEI ALS ROOT!") (space (+ 6 (- (window-width) (length warning)))) (bracket (make-string (/ space 2) ?-)) (warning (concat bracket warning bracket))) (setq header-line-format (propertize warning 'face 'brf-find-file-root-header-face))))) (defun brf-open-as-admin () "Eine Datei mit Admin-Rechten öffnen." (interactive) (let ((bname (expand-file-name (or buffer-file-name default-directory))) (pt (point))) (setq bname (or (file-remote-p bname 'localname) (concat "/sudo::" bname))) ;; FIXME mostly works around, but not quite (flet ((server-buffer-done (buffer &optional for-killing) nil)) (find-alternate-file bname)) (goto-char pt))) ;; normally this is bound to find-file-read-only ;; use M-x toggle-read-only instead ;; (global-set-key (kbd "C-x C-r") 'find-alternative-file-with-sudo) ;; ich habe diese Funktion auf C-M-F8 gelegt. (add-hook 'find-file-hook 'brf-find-file-root-header-warning) (add-hook 'dired-mode-hook 'brf-find-file-root-header-warning) ;; Diesen Buffer beim Start öffnen: (switch-to-buffer "*text-scratch*") ;;============ Ende der Einstellungen für Darwin ========================= ;;======================================================================== ;;; Ab nun kommen allgemeine Einstellungen, die in jeder Umgebung ;;; funktionieren müssten. ;; C-z als Prefix-Key verwenden: (global-unset-key (kbd "C-z")) ;; Ein Menü aufbauen für die eigenen Keybindings: (easy-menu-define brf-menu global-map "BRF" '("BRF" (" M-Tab = C-TAB = C-M-i" :active nil) ("Allgemein" [ "Hide Emacs" ns-do-hide-emacs ] [ "Recent Files" recentf-open-files ] [ "Buffer-Menu" brf-buffer-menu ] [ "other Buffer (f11)" other-window ] [ "next Buffer" brf-select-next-buffer ] [ "prev Buffer" brf-select-previous-buffer ] [ "Kill other/this buffer" brf-kill-other-buffer ] [ "Toggle \"Multifenster\"" brf-toggle-one-window ] [ "Toggle Speedbar" speedbar ] [ "Pipe Buffer durch cmd" brf-pipe-buffer-to-cmd ] [ "Starte Emacs-Calc" calc-dispatch] [ "Toggle Buffer read-only" toggle-read-only ] [ "Edit buffer als admin" brf-open-as-admin] ) ("Editieren" [ "Toggle Overwrite" overwrite-mode ] [ "Query-Replace (M-+)" query-replace ] [ " Q-R-Regexp" query-replace-regexp ] [ "Abbrev expand" brf-expand-abbrev-or-dabbrev ] [ "Suche Ligatur" brf-FindNextLigatur ] [ "Suche Doppelte Wörter" brf-FindNextDbl ] [ "Tabs --> Spaces" brf-alles-untabify ] [ "Toggle Auto Fill" auto-fill-mode ] [ "Indent Buffer" brf-indent-buffer ] [ "Indent Region (C-M-ä)" indent-region ] [ "Mark Paragraph" mark-paragraph ] [ "Marke setzen" brf-set-mark-ohne-highlight ] [ "Zur Marke springen" brf-springe-zu-mark ] [ "Klammer vor" forward-sexp ] [ "Klammer zurück" backward-sexp ] [ "Insert Template" brf-templ ] [ "Insert Timestamp" brf-insert-timestamp ] [ "Insert C-Fkt-Kommentar" brf-insert-c-Funktion-Kommentar ] [ "Del horiz. space (M-ä)" delete-horizontal-space ] ) ("Darstellung" [ "Toggle truncate Lines" brf-toggle-truncate ] [ "Toggle Zeilennummern" linum-mode ] [ "Toggle Fontlock" font-lock-mode ] [ "(Re-)Fontify Buffer" font-lock-fontify-buffer ] [ "Toggle whitespace" whitespace-mode ] [ "Transparenz setzen" brf-set-alpha ] [ "Cycle Fonts" brf-cycle-font ] ) ("Color-Moccur in iSearch" ["Occur-Fenster Öffnen (M-o)" moccur ] ["Zur Stelle in Buffer (C-c C-c)" moccur-goto-occurence ] ["Occur-Fenster schließen (q)" moccur-quit ] ) ("Input Method" [ "Anzeigen" describe-input-method ] [ "Toggeln (C-ä)" toggle-input-method ] [ "Setzen (C-x RET C-ä)" set-input-method ] ) ("Flyspell" [ "Toggle Sprache" brf-toggle-ispell-sprache ] [ "Toggle Flyspell" flyspell-mode ] [ "Spellcheck Buffer" ispell-buffer ] [ "Vorschläge" flyspell-auto-correct-word ] [ "Zeige Sprache" brf-zeige-ispell-sprache ] ) ("Compilieren" [ "Goto next error ()," next-error ] [ "Compile" compile ] ) ("Translate" [ "einzugebendes Wort" translate ] [ "Wort unter Cursor" translate-at-point ] [ "Übersetzung lernen" translate-enter-translation ] ) ("Unicode" [ "Insert Unicode ()," ucs-insert ] [ "Kurzanzeige Code ()," what-cursor-position ] [ "Langanzeige Code" describe-char ] ) ("ManPages" [ "man zur Auswahl" man] [ "man mit bwana" brf-bwana-start ] ) ("Sunrise Commander" [ "Start im aktuellen Fenster" brf-sunrise-install ] [ "Start in eigenem Fenster" brf-start-sunrise ] ("Navigations-Befehle" :active (string= major-mode "sr-mode") [ "Mode Beschreibung" sr-describe-mode ] [ "Panels auffrischen" sunrise ] [ "Revert Buffer" revert-buffer ] [ "Transpose Panes" sr-transpose-panes ] [ "Synchronize Panes" sr-synchronize-panes ] [ "Change Window" sr-change-window ] [ "Select Viewer Window" sr-select-viewer-window ] [ "zum Anfang des Pane" sr-beginning-of-buffer ] [ "zum Ende des Pane" sr-end-of-buffer ] [ "Scroll Up" sr-scroll-up ] [ "Scroll Down" sr-scroll-down] [ "Cycle Split Panes" sr-split-toggle ] [ "Toggle truncate Lines" sr-toggle-truncate-lines ] [ "Interactive Sort" sr-interactive-sort ] [ "Dir höher (M-Lpf)" sr-dired-prev-subdir ] [ "Dir tiefer (M-Rpf)" sr-advertised-find-file ] [ "Goto Dir" sr-goto-dir ] ) ("File-Befehle" :active (string= major-mode "sr-mode") [ "Quick Open" sr-quick-view ] [ "Umark all files" dired-unmark-all-files ] [ "Kopieren" sr-do-copy ] [ "Klonen" sr-do-clone ] [ "Rename" sr-do-rename ] [ "Delete" sr-do-delete ] [ "Delete Flagged" sr-do-flagged-delete ] [ "Symlink" sr-do-symlink ] [ "Relativer Symlink" sr-do-relsymlink ] [ "Hardlink" sr-do-hardlink ] [ "Diff files" sr-diff ] [ "Ediff files" sr-ediff ] [ "Compare Panes" sr-compare-panes ] [ "Query Replace regexp" sr-do-query-replace-regexp ] ) ("Shell" :active (string= major-mode "sr-mode") [ "Shell öffnen" sr-term ] [ "Shell öffnen mit cd" sr-term-cd ] [ "Neue Shell öffnen" sr-term-cd-newterm ] ) ) ("AUCTeX" :active (or (string= major-mode "latex-mode") (string= major-mode "plain-tex-mode") (string= mahor-mode "tex-mode") (string= major-mode "texinfo-mode") (string= major-mode "doctex-mode")) [ "Next Error ()," TeX-next-error ] [ "AUCTeX Style-Files laden" brf-lade-einstellungen ] [ "LaTeX Math-mode (C-#)" LaTeX-math-mode ] [ "Use LuaTeX engine" LuaEngineEIN ] [ "Use default engine" DefaultEngineEIN ] [ "Use LaTeX mode" LaTeX-mode ] [ "Forward-Search xdvi" TeX-view ] ( "Einfügen:" [ "Electric Backslash" TeX-electric-macro ] [ "Doppel-Backslash" brf-insert-neueZeile ] [ "Einfach-Backslash" brf-insert-backslash ] [ "‚Halbe Quotes’" brf-insert-half-quotes ] [ "›Halbe Guillemets‹" brf-insert-half-guillemets ] [ "Tausender-Trenner" brf-tausender-trenner ] ) ( "Templates:" [ "Bruch-Template" brf-insert-frac ] [ "Wurzel-Template" brf-insert-sqrt ] [ "Displaymath Template" brf-insert-displaymath ] [ "psplot Template" brf-insert-psplot ] ) ( "Preview:" [ "Preview at Point (),"preview-at-point ] [ "Preview Buffer ()," preview-buffer ] ) ) ("mma-mode" :active (string= major-mode "mma-mode") [ "Umlaute in Mma-Form" brf-mma-umlaute ] [ "alle {...} nach (...)" brf-klammern-rund ] [ "alle \"...\" nach »...« " brf-mma-quotes ] ) ("html-helper-mode" :active (string= major-mode "html-helper-mode") [ "Umlaute in html" brf-html-umlaute ] [ "Tags lower case" brf-lower-html-tags ] [ "beides obige" brf-update-html ] [ "Tags complete" tempo-complete-tag ] [ "Indent buffer" brf-tidy-html ] ) ("Gnus" :active (or (string= major-mode "gnus-summary-mode") (string= major-mode "gnus-article-mode") (string= major-mode "gnus-group-mode")) [ "Show Thread" brf-gnus-summary-show-thread ] [ "Hide Thread ()" gnus-summary-hide-thread ] [ "Anzeige in Charset" brf-view-article-as-charset ] [ "Quoted-Printable weg" brf-qp-schrott ] [ "HTML im Browser" brf-gnus-summary-view-html-alternative-in-browser ] [ "Toggle Citation" gnus-article-hide-citation ] ) ("org-mode" :active (string= major-mode "org-mode") [ "Store link (C-z l)" org-store-link ] [ "Agenda Wahl (C-z a)" org-agenda ] [ "ISwitch b] (C-z-b)" org-iswitchb ] ) ) ) ;;; =========================== ;;; Grundlegende Einstellungen: ;;; =========================== ;; Das ist selbsterklärend: (setq inhibit-startup-message t) (setq visible-bell t) (column-number-mode 1) (setq x-select-enable-clipboard t) (menu-bar-enable-clipboard) ;; statt 'yes' oder 'no' als Antwort soll 'y' oder 'n' genügen (fset 'yes-or-no-p 'y-or-n-p) ;; emacsclient aktivieren, ihn in neuem Buffer aufrufen und diesen nach ;; Beenden wieder schließen. (server-start) (progn (remove-hook 'kill-buffer-hook 'server-kill-buffer) ; (add-hook 'server-switch-hook ; '(lambda() (set-keyboard-coding-system 'mac-roman))) (add-hook 'server-done-hook 'kill-this-buffer)) ;; ein paar Sachen zur Schönheit: (setq frame-title-format '(buffer-file-name "%f" ("%b"))) (setq default-tab-width 4) (setq scroll-step 1) (setq scroll-conservatively 100) (setq scroll-preserve-screen-position t) (setq next-line-add-newlines nil) (setq require-final-newline t) ;; Satzende bestimmen. Nur ein Leerzeichen am Satzende (setq sentence-end "[.?!][]\"')]*\\($\\|\t\\| \\)[ \t\n]*") ;; Markierungen unterlegen: (setq transient-mark-mode t) ;; Sachen für Shell-Mode: ;; Passworteingabe nicht anzeigen: (add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt) (add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m) ;; allgemeine Einstellungen: (setq default-major-mode 'text-mode) (setq text-mode-hook 'turn-on-auto-fill) (add-hook 'text-mode-hook '(lambda() (setq fill-column 72))) (setq ps-paper-type 'a4) ;; Spotlight soll Emacs-Dateien indizieren. ;; Kommentieren, sobald TeX.mdimporter funktioniert -- ist aber egal ;; (add-hook 'after-save-hook 'sichere-als-text) ; (defun sichere-als-text () ; "Sichert LaTex-Dateien als TEXT, damit sie von Spolight erkannt werden" ; (if (or (derived-mode-p 'latex-mode) (derived-mode-p `bibtex-mode)) ; (progn ; (start-process-shell-command "save-text-dateien" nil ; "/Developer/Tools/SetFile" "-t" "TEXT" ; (shell-quote-argument (buffer-file-name))) ; (start-process-shell-command "spotlight-indiziere" nil ; "/usr/bin/mdimport" ; (shell-quote-argument (buffer-file-name))) ; (message (concat "schrieb \"" (buffer-file-name) "\" als TEXT."))))) ;; ========= ;; Org-Mode: ;; ========= (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (global-set-key "\C-zl" 'org-store-link) (global-set-key "\C-za" 'org-agenda) (global-set-key "\C-zb" 'org-iswitchb) (setq org-todo-keywords '((sequence "TODO" "WAIT" "|" "DONE"))) ;; ============ ;; Buffer-Menu: ;; ============ ;; Art wie das Buffer-Menü angeordnet werden soll: (setq buffers-menu-grouping-function 'group-buffers-menu-by-mode-then-alphabetically) ;; Verbessertes Buffer-menu: (require 'msb) ;; Änderung des buffer-menus, es soll im selben Window erscheinen: (defun brf-buffer-menu() "ruft das buffer-menu auf, setzt Eintrag `Buffer List' zuvor ans Ende" (interactive) (progn (buffer-menu) (bury-buffer) (buffer-menu))) ;; Durch die Buffer zykeln, dabei System-Buffer, wie *Completions usw. ;; auslassen: (defun brf-select-next-buffer () "wechselt zyklisch zum nächsten 'echten' buffer, der also nicht mit '*' beginnt. Sind keine solchen user-buffer vorhanden, wird zum nächsten vorhandenen buffer gewechselt." (interactive) (next-buffer) (let ((i 0)) (while (and (string-match "^*" (buffer-name)) (< i 100)) (setq i (1+ i)) (next-buffer) ))) (defun brf-select-previous-buffer () "wechselt zyklisch zum vorhergehenden 'echten' buffer, der also nicht mit '*' beginnt. Sind keine solchen user-buffer vorhanden, wird zum nächsten vorhandenen buffer gewechselt." (interactive) (previous-buffer) (let ((i 0)) (while (and (string-match "^*" (buffer-name)) (< i 100)) (setq i (1+ i)) (previous-buffer) ))) ;; Funktion zum Löschen des "other buffer" um etwa Fehlerausgabefenster ;; wieder zu schließen und das alte Fenster wieder groß zu machen: (defun brf-kill-other-buffer (arg) "Kill den other buffer und mache current buffer full size. Falls es keinen other buffer gibt, kill den current buffer." (interactive "p") (let ((buf (save-window-excursion (other-window arg) (current-buffer)))) (delete-windows-on buf) (kill-buffer buf))) ;; =========== ;; Minibuffer: ;; =========== ;; Minibuffer darf für lange Ein-Ausgaben mehrzeilig werden: (add-hook 'minibuffer-setup-hook (lambda() (setq truncate-lines nil))) ;; Filenamen-Expansion im Minibuffer: (require 'comint) (define-key minibuffer-local-map [C-i] 'comint-dynamic-complete) ;; =========================== ;; Font-Lock und Highlighting: ;; =========================== (setq font-lock-maximum-decoration t) (setq font-lock-maximum-size nil) (global-font-lock-mode t) ;; ============= ;; Font-Wechsel: ;; ============= (defun brf-cycle-font (num) "Wechsle Font im aktuellen Frame. Jeder Aufruf zykelt durch eine vordefinierte Font-Liste. If NUM is 1, cycle forward. If NUM is -1, cycle backward. Warning: tested on Windows Vista only." (interactive "p") ;; this function sets a property “state”. It is a integer. ;; Possible values are any index to the fontList. (let (fontList fontToUse currentState nextState ) (setq fontList (list "InconsolataBrf-18" "Palatino-17" "DejaVu Sans Mono-17" "Monaco-16" "Andale Mono 17" "Optima-17" "Envy Code R-17" )) (setq currentState (if (get 'brf-cycle-font 'state) (get 'brf-cycle-font 'state) 0)) (setq nextState (% (+ currentState (length fontList) num) (length fontList))) (setq fontToUse (nth nextState fontList)) (set-frame-parameter nil 'font fontToUse) (redraw-frame (selected-frame)) (message "Current font is: %s" fontToUse ) (put 'brf-cycle-font 'state nextState) ) ) ;; ================================= ;; Ispell und Flyspell-Einstellunen: ;; ================================= ;; neuere Emacsen verwenden automatisch aspell als Ersatz für ispell ;; Aufrufe spezifischer Funktionen heißen dennoch ispell-... (setq-default ispell-program-name "/opt/local/bin/aspell") (setenv "ASPELL_CONF" nil) ;; Saubere Behandlung von Umlauten mit apell/ispell unter utf8: (eval-after-load 'ispell '(when ispell-aspell-supports-utf8 (setq ispell-extra-args (append ispell-extra-args '("--encoding" "none"))))) ;; Ispell Rechtschreibung auf neue deutsche (defvar brf-flyspell-dictionary "german8" "Sprache fuer FlySpell und Ispell") (ispell-change-dictionary brf-flyspell-dictionary) (setq ispell-dictionary brf-flyspell-dictionary) (setq ispell-check-comments nil) (setq ispell-parser 'tex) (setq flyspell-mouse-map (let ((map (make-sparse-keymap))) (define-key map (if (featurep 'xemacs) [button3] [down-mouse-3]) #'flyspell-correct-word) (define-key map (kbd "C-M-i") #'flyspell-auto-correct-word) map)) ;; Anzeige der Sprache für FlySpell in der Mode-Line (defun brf-setze-fly-mode-string () "Zeigt in der Status-Zeile die von flyspell benutzte Sprache an." (setq flyspell-mode-line-string (concat " \[" (substring brf-flyspell-dictionary 0 2) "\]"))) ;; eigene Funktionen zur Umschaltung der Sprache für flyspell (defun brf-zeige-ispell-sprache() "Gibt die benutzte Flyspell Sprache als message aus." (interactive) (message (concat "Ispell benutzt " brf-flyspell-dictionary))) (defun brf-toggle-ispell-sprache() "Schaltet zwischen englischer und (neuer) deutscher Rechtschreibung um. Mit Prefix wird auf französchische Rechtschreibung umgeschaltet." (interactive) (if (null current-prefix-arg) (if (string= brf-flyspell-dictionary "german8") (setq brf-flyspell-dictionary "english") (setq brf-flyspell-dictionary "german8")) (setq brf-flyspell-dictionary "francais")) (ispell-change-dictionary brf-flyspell-dictionary) (flyspell-mode) (flyspell-mode) (brf-zeige-ispell-sprache)) ;; In jedem Text-mode flyspell aktivieren: (add-hook 'text-mode-hook 'flyspell-mode) (add-hook 'flyspell-mode-hook '(lambda() (ispell-change-dictionary brf-flyspell-dictionary))) (add-hook 'flyspell-mode-hook 'brf-setze-fly-mode-string) (setq flyspell-persistent-highlight t) ;; ===================== ;; Translate einrichten: ;; ===================== (autoload 'translate "translate" "A simple translator." t) (autoload 'translate-at-point "translate" "A simple translator." t) (autoload 'translate-phrase-from-region "translate" "A translator." t) (autoload 'translate-change-dictionary "translate" "A translator" t) (autoload 'translate-enter-translation "translate" "A translator" t) (setq *translate-glob-dir* "~/lib/words/") (setq *translate-glob-dictname* "en-de.UTF-8.vok") (setq *translate-priv-dir* "~/_translate/") (setq *translate-ask-dicts* nil) (setq *translate-single-privdict* "~/_translate/privdict.vok") ;; ====================== ;; Kalendereinstellungen: ;; ====================== (setq-default kill-whole-line t) (setq calendar-latitude 48.0) (setq calendar-longitude 9.5) (setq calendar-location-name "Bad Saulgau, D") (setq european-calendar-style t) (setq calendar-week-start-day 1) (setq display-time-24hr-format 1) ;; ==================================================== ;; Manual-Pages mit "Bwana" finden (Anzeige im Browser) ;; ==================================================== (defun brf-bwana-start (mp) "Startet bwana manpage-Anzeige im Browser. Wildcards gehen, Sektionen sind nach einem Punkt einzugeben, (z.B. strtok.3). Auch Teilstrings werden gefunden. Dann hat die Sektion keine Wirkung." (interactive (list (read-string (concat "Manpage [Bwana] (" (current-word) "): ")))) (if (equal "" mp) (setq mp (current-word))) (shell-command (concat "open -a bwana man:" mp))) ;; ============ ;; Abbrev-Mode: ;; ============ (setq-default abbrev-mode t) (read-abbrev-file "~/.abbrev_defs") (setq save-abbrevs nil) (diminish 'abbrev-mode) (defun brf-expand-abbrev-or-dabbrev() "Sucht zuerst nach vordefinierten Abbrevs, sonst dynamisch." (interactive) (if (not (expand-abbrev)) (progn (dabbrev-expand nil)))) ;; ========================================= ;; Eigene Hilfsfunktionen und Einstellungen: ;; ========================================= ;;; Funktion zum Ersetzen aller Tabs durch Leerzeichen (z.B. Mail und News): (defun brf-alles-untabify () "Ersetzt alle TABs durch die passende Anzahl von Spaces im gesamten Buffer" (interactive) (untabify (point-min) (point-max))) ;;; Shell-Command auf ganzen Buffer anwenden: (defun brf-pipe-buffer-to-cmd (cmd) "Piped den Buffer durch ein einzugebendes Kommando" (interactive "sPipe Buffer trough Command: ") (shell-command-on-region (point-min) (point-max) cmd )) ;;; Umbruch langer Zeilen oder nicht: (defun brf-toggle-truncate () "schaltet zwischen abgeschnittener und umgebrochener Zeilendarstellung um" (interactive) (if truncate-lines (setq truncate-lines nil) (setq truncate-lines t)) (redraw-display)) ;;; Suche nach doppelten Wörtern (gestohlen aus "Mastering regexps"): (defun brf-FindNextDbl() "gehe zum nächsten doppelt auftretenden Wort, ignoriere dabei <...> tags" (interactive) (re-search-forward "\\<\\([a-zäöüÄÖÜß]+\\)\\([\n \t]\\|<[^>]+>\\)+\\1\\>")) ;;; Suche nach nächster Ligatur: (defun brf-FindNextLigatur() "springe zur nächsten Ligatur ff, fi, fl, ffi und ffl" (interactive) (re-search-forward "ff\\|fi\\|fl")) ;;; Templates einfach einbinden: ;;; ---------------------------- (defvar templ-directory "~/_templates/" "Directory, das die Vorlagen für die Funktion templ enthält") (defun brf-templ (p) "brf-templ sucht in dem in der Variablen `templ-directory' (Name mit `/' abschließen!) festgelegten Verzeichnis nach einem Unterverzeichnis mit dem Emacs-Mode-Namen und fügt den Inhalt des daraus ausgewählten Files an der Cursorposition ein. Die Vorlagen liegen also etwa in `_templates/LaTeX' oder `_template/HTML-helper' usw. Die Funktion kann dann mit C-F2 aufgerufen werden. Sollten die Mode-Name einen '/' enthalten, so wird dieser samt dem Rest für das Verzeichnis nicht beachtet." (interactive (list (completing-read (concat (replace-regexp-in-string "/.*$" "" mode-name) "-Template: ") (mapcar '(lambda (x) (list x)) (directory-files (concat templ-directory (replace-regexp-in-string "/.*$" "" mode-name))))))) (let (tmpl-file) (setq tmpl-file (concat templ-directory (replace-regexp-in-string "/.*$" "" mode-name) "/" p)) (if (file-exists-p tmpl-file) (insert-file tmpl-file) (message "%s" (concat "`" tmpl-file "' nicht gefunden"))))) ;;; Springen im Text: (defun brf-set-mark-ohne-highlight() "setzt Mark ohne das Highliting einzuschalten. Gebunden an M-down." (interactive) (push-mark nil nil nil)) (defun brf-springe-zu-mark() "springt an die letzte Stelle im Mark-Ring. Gebunden an M-up." (interactive) (set-mark-command 0)) ;;; Funktionskommentare in C-Code einfügen: (defun brf-insert-c-Funktion-Kommentar() "Fügt Kommentarzeilen vor Point ein" (interactive) (insert "/* * USE: * PAR: * RET: */ ") (goto-char (forward-point -20))) ;;; Indentation des ganzen Buffers ja nach Major-Mode: (defun brf-indent-buffer() "rückt den ganzen Buffer schön ein, entsprechend dem Major-Mode" (interactive) (indent-region (point-min) (point-max) nil)) ;;; ein etwas besseres dired: (add-hook 'dired-load-hook (function (lambda () (load "dired-x") (setq dired-dwim-target t)))) ;;; ls-Kommando von lisp machen lassen, damit gehen auch dirs am Anfang: (require 'ls-lisp) ;;; Das folgende Macro fügt in mit Punkten getrennten Dezimalzahlen ;;; Tausendertrenner in Form von TeX, also \, ein: (defun brf-tausender-trenner () "Fügt TeX-Smallspaces als Trenner in einer Dezimalpunkt oder -Komma enthaltenden Zahl ein. Sind je mehrere Trenner nötig, so muss die Funktion mehrfach gestartet werden." (interactive) (backward-word) (while (re-search-forward "\\([0-9]+\\)\\([0-9][0-9][0-9]\\)\\(\\.\\|\\\\,\\|,\\)" nil t) (replace-match "\\1\\\\,\\2\\3"))) ;;; Klammerlisten-Umwandlung: (defun brf-klammern-rund () "macht aus Klammer-Listen {{4.7,5.3}, {2.4,0.1}} bzw. [[1.2,3.2],[4,7]] zu pstrics passende Klammern (4.7,5.3)(2.5,0.1)" (interactive) (if mark-active (save-excursion (narrow-to-region (region-beginning) (region-end)) (goto-char (region-beginning)) (while (re-search-forward "[[{]+\\([0-9\.-]+\\), *\\([0-9\.-]+\\)[]}]+,? *" nil t) (replace-match "(\\1,\\2)" nil nil)) (widen)) (error "Keine Region markiert!"))) ;; Einige Zeichensatz Umwandlungsfunktionen: ;; ========================================= ;;hier ist iso synonym für den Zeichensatz, der in dieser Datei ;; verwendet wird. Das ist bei mir utf-8. Man muss keine Änderungen ;; vornehmen, falls man etwa latin-1 oder sonstwas verwendet. Es muss ;; nur der Emacs Buffer dasselbe encoding haben, wie die hier ;; gespeicherte .emacs. Wenn man die .emacs in Emacs öffnet, dann ;; müssen die Umlaute richtig angezeigt werden. Dann tut alles. (defun brf-wandle-encoding (tr-list) (let ((case-fold-search nil)) (save-excursion (goto-char (point-min)) (while (re-search-forward (mapconcat '(lambda (x) (car x)) tr-list "\\|") nil t) (replace-match (cdr(assoc (match-string 0) tr-list)) t t))))) ;;; ---- iso nach html: (defvar html-sonderzeichen '(("Ä" . "Ä") ("Ö" . "Ö") ("Ü" . "Ü") ("ä" . "ä") ("ö" . "ö") ("ü" . "ü") ("ß" . "ß") (" -- " . " – ") ("€" . "€") ("«" . "«") ("»" . "»") )) (defun brf-html-umlaute() "wandelt Umlaute in die passenden html-Umlaute um. Siehe Tabelle html-sonderzeichen. " (interactive) (brf-wandle-encoding html-sonderzeichen)) ;;; ---- Umwadlung in reines 7 bit: (defvar 7bit-sonderzeichen '(("Ä" . "Ae") ("Ö" . "Oe") ("Ü" . "Ue") ("ä" . "ae") ("ö" . "oe") ("ü" . "ue") ("ß" . "ss")) ) (defun brf-7bit-umlaute() "wandelt Umlaute in reines 7-Bit (ae, oe, ss usw.) um. Siehe Tabelle 7bit-Sonderzeichen. Gedacht für Programmlistings mit LaTeX Paket listings." (interactive) (brf-wandle-encoding 7bit-sonderzeichen)) ;;; ---- html nach iso: (defvar iso-sonderzeichen '(("Ä" . "Ä") ("Ö" . "Ö") ("Ü" . "Ü") ("ä" . "ä") ("ö" . "ö") ("ü" . "ü") ("ß" . "ß") ("–" . " -- ") ("&8364;" . "€") ("«" . "«") ("&lrquo;" . "»") )) (defun brf-iso-umlaute() "wandelt html-Umlaute in iso-umlaute um. Siehe Tabelle iso-sonderzeichen." (interactive) (brf-wandle-encoding iso-sonderzeichen)) ;;; ---- iso nach Mathematica: (defvar mma-sonderzeichen '(("Ä" . "\\[CapitalADoubleDot]") ("Ö" . "\\[CapitalODoubleDot]") ("Ü" . "\\[CapitalUDoubleDot]") ("ä" . "\\[ADoubleDot]") ("ö" . "\\[ODoubleDot]") ("ü" . "\\[UDoubleDot]") ("ß" . "\\[SZ]") ("°" . "\\[Degree]") ("/-" . "\\[Dash]") ("«" . "\\[LeftGuillemet]") ("»" . "\\[RightGuillemet]") )) (defun brf-mma-umlaute() "wandelt Umlaute ÄÜÖ, äöüß ° »« in die passenden Mathematica-Zeichen um. Siehe Tabelle mma-sonderzeichen" (interactive) (brf-wandle-encoding mma-sonderzeichen)) ;; in Mathematica Notebooks kommen ggf. Anführungen im Math-Mode vor, ;; das wird hiermit ausgebügelt, da es sonst Übersetzungsfehler gibt: (defun brf-mma-quotes() "Ersetzt Gänsefüßchen durch guillemets \">...\"< Anführungszeichen" (interactive) (save-excursion (goto-char (point-min)) (query-replace-regexp "\"\\([^\"]*\\)\"" "\">\\1\"<"))) ;;; ---- iso nach LaTeX: (defvar latex-sonderzeichen '(("Ä" . "\"A") ("Ö" . "\"O") ("Ü" . "\"U") ("ä" . "\"a") ("ö" . "\"o") ("ü" . "\"u") ("ß" . "\"s") )) (defun brf-latex-umlaute() "wandelt Umlaute in ur-förmige LaTeX-Umlaute um. Siehe Tabelle latex-sonderzeichen. " (interactive) (brf-wandle-encoding latex-sonderzeichen)) ;;; ---- quoted printable richtig machen: (defvar qp-sonderzeichen '(("=20=18" . "‘") ("=20=19" . "’") ("=20=1A" . "‚") ("=20=1B" . "‛") ("=20=1C" . "“") ("=20=1D" . "”") ("=20=1E" . "„") ("=20=1F" . "‟") ("=91" . "`") ("=92" . "'") ("=93" . "“") ("=94" . "”") ("=A0" . " ") ("=A1" . "¡") ("=A2" . "¢") ("=A3" . "£") ("=A4" . "¤") ("=A5" . "¥") ("=A6" . "¦") ("=A7" . "§") ("=A8" . "¨") ("=A9" . "©") ("=AA" . "ª") ("=AB" . "«") ("=AC" . "¬") ("=AE" . "®") ("=AF" . "¯") ("=B0" . "°") ("=B1" . "±") ("=B2" . "²") ("=B3" . "³") ("=B4" . "´") ("=B5" . "µ") ("=B6" . "¶") ("=B7" . "·") ("=B8" . "¸") ("=B9" . "¹") ("=BA" . "º") ("=BB" . "»") ("=BC" . "¼") ("=BD" . "½") ("=BE" . "¾") ("=BF" . "¿") ("=C0" . "À") ("=C1" . "Á") ("=C2" . "Â") ("=C3" . "Ã") ("=C4" . "Ä") ("=C5" . "Å") ("=C6" . "Æ") ("=C7" . "Ç") ("=C8" . "È") ("=C9" . "É") ("=CA" . "Ê") ("=CB" . "Ë") ("=CC" . "Ì") ("=CD" . "Í") ("=CE" . "Î") ("=CF" . "Ï") ("=D0" . "Ð") ("=D1" . "Ñ") ("=D2" . "Ò") ("=D3" . "Ó") ("=20" . " ") ("=D5" . "Ô") ("=D6" . "Ö") ("=D7" . "×") ("=D8" . "Ø") ("=D9" . "Ù") ("=DA" . "Ú") ("=DB" . "Û") ("=DC" . "Ü") ("=DD" . "Ý") ("=DE" . "Þ") ("=DF" . "ß") ("=E0" . "à") ("=E1" . "á") ("=E2" . "â") ("=E3" . "ã") ("=E4" . "ä") ("=E5" . "å") ("=E6" . "æ") ("=E7" . "ç") ("=E8" . "è") ("=E9" . "é") ("=EA" . "ê") ("=EB" . "ë") ("=EC" . "ì") ("=ED" . "í") ("=EE" . "î") ("=EF" . "ï") ("=F0" . "ð") ("=F1" . "ñ") ("=F2" . "ò") ("=F3" . "ó") ("=F4" . "ô") ("=F5" . "õ") ("=F6" . "ö") ("=F7" . "÷") ("=F8" . "ø") ("=F9" . "ù") ("=FA" . "ú") ("=FB" . "û") ("=FC" . "ü") ("=FD" . "ý") ("=FE" . "þ") ("=FF" . "ÿ") )) (defun brf-qp-schrott () "Wandelt Quoted-Printable-Schrott im Buffer in richtige Zeichen um. Zuvor wird read-only für den Buffer ausgeschaltet! Gedacht für News." (interactive) (toggle-read-only nil) (save-excursion (goto-char (point-min)) (query-replace-regexp "= *$" "")) (brf-wandle-encoding qp-sonderzeichen)) ;;; Kurrent-Ligaturen einsetzen, falls man die Schriftart 18th Century ;;; verwendet. Das sind altdeutsche Kanzlei-Schreibschriften Auffindbar unter ;;; http://www.peter-wiegel.de/18thCentury.html (defvar kurrent-ligaturen '(("St" . "È") ("sch" . "À") ("tz" . "ú") ("ch" . "à") ("ck" . "á"))) (defun brf-kurrent () "Setzt Ligaturen für Peter Wiegels Kurrent-Schriften ein." (interactive) (if (region-active-p) (progn (narrow-to-region (region-beginning) (region-end)) (brf-wandle-encoding kurrent-ligaturen) (let ((case-fold-search nil)) ; Groß-/Kleinschreibung beachten (goto-char (point-min)) (replace-regexp "s\\(\\b\\)" "\\\\$\\1") ; s am Wortende (goto-char (point-min)) (replace-regexp "\\(\\b\\)z" "\\1²") ; z am Wortanfang (goto-char (point-min)) (replace-regexp "\\(\\b\\)f" "\\1â") ; f am Wortanfang (goto-char (point-min)) (replace-regexp "ß\\(\\b\\)" "í\\1") ; ß am Wortende (goto-char (point-min)) (replace-regexp "d\\(\\b\\)" "ì\\1") ; d am Wortende (goto-char (point-min)) (replace-regexp "\\(\\b\\)s" "\\1É") ; s am Wortanfang (goto-char (point-min)) (query-replace-regexp "\\(\\B\\)s\\(\\B\\)" "\\1\\\\$\\2") ;s im Wort (goto-char (point-min)) (replace-string "st" "ù")) ; nun st ligieren (goto-char (point-min)) (widen)) (message "Keine Region markiert!"))) (defvar wiegel-ligaturen '(("ch" . "à") ("ck" . "á") ("St" . "Ù") ("mm" . "È") ("nn" . "É") ("ff" . "è") ("fi" . "é") ("fl" . "ò") ("tt" . "À") ("sch" . "¥"))) (defun brf-wiegel() "Setzt die Ligaturen für Peter Wiegels Sütterlin-Schrift ein." (interactive) (if (region-active-p) (progn (narrow-to-region (region-beginning) (region-end)) (brf-wandle-encoding wiegel-ligaturen) (let ((case-fold-search nil)) (goto-char (point-min)) (replace-regexp "s\\(\\b\\)" "\\\\$\\1") ; s am Wortende (goto-char (point-min)) (query-replace-regexp "\\(\\B\\)s\\(\\B\\)" "\\1\\\\$\\2") ;s im Wort (goto-char (point-min)) (replace-string "ss" "ò") ; nun doppel-s ligieren (goto-char (point-min)) (replace-string "st" "ù") ; nun st ligieren (goto-char (point-min)) (replace-string "¥" "sà")) ; ¥ wieder zu sch (goto-char (point-min)) (widen)) (message "Keine Region markiert!"))) ;;; ===== Ende Zeichensatz-Zeug ============= ;; bei C-s Cursor stets an den Wortanfang stellen, so dass C-sC-w das Wort ;; suchen kann ;; steht der Cursor auf einem Wort, soll an dessen Anfang gesprungen ;; und dann dieses Wort zur Suche vorgeschlagen werden: (defun brf-word-search () "Das Wort, auf welchem der Cursor steht, wird als Start von isearch vorgeschlagen" (interactive) (forward-word 1) (backward-word 1) (call-interactively 'isearch-forward)) ;; Sunrise Commander: ;; ================= ;; Variable, ob sunrise schon gestartet (defvar brf-sunrise-gestartet nil) ;; Variable der default sunrise Fensterbreite (defvar brf-sr-breite "140") ;; sunrise aufrufen und Makros erzeugen: (defun brf-sunrise-install () "Startet Sunrise Commander in aktivem Frame." (interactive) (if (not brf-sunrise-gestartet) (progn (setq brf-sunrise-gestartet t) (require 'sunrise-commander) ; (require 'sunrise-x-buttons) ; (require 'sunrise-x-popviewer) (require 'sunrise-x-modeline) (define-key sr-mode-map (kbd "M-") 'sr-dired-prev-subdir) (define-key sr-mode-map (kbd "M-") 'sr-advertised-find-file))) (sunrise)) ;; sunrise-commander in neuem frame starten (defun brf-start-sunrise (breite) "Startet Sunrise Commander in neuem Frame wählbarer Breite." (interactive (list (read-string (concat "Sunrise Fensterbreite (" brf-sr-breite "): ")))) (if (equal "" breite) (setq breite brf-sr-breite) (setq brf-sr-breite breite)) (setq brf-sr-fenster (make-frame-command)) (set-frame-width brf-sr-fenster (string-to-number breite)) (select-frame brf-sr-fenster) (brf-sunrise-install)) ;; Zwischen Darstellung mit mehreren Fenstern und einem Fenster ;; wechseln. Analog zu C-x1, aber es ist ein Toggle, der die ;; vorige Multifenster Darstellung wiederherstellt. Wird unten an ;; C-z 1 gebunden. ;; Fensterdarstellungen: ;; ===================== (defvar brf-toggle-window-configuration nil "Die zu benutzende Fensterkonfiguration zu brf-toggle-one-window.") (defun brf-toggle-one-window () "Umschalten zwischen Multifenster und ein-Fenster-Layout." (interactive) (if (one-window-p t) (if brf-toggle-window-configuration (progn (set-window-configuration brf-toggle-window-configuration) (setq brf-toggle-window-configuration nil)) (message "Es gibt keine anderen Fenster")) (setq brf-toggle-window-configuration (current-window-configuration)) (delete-other-windows))) ;; meine Tastenumbelegungen: ;; ========================= ;; Klammern immer paarweise: (setq skeleton-pair t) (global-set-key "(" 'skeleton-pair-insert-maybe) (global-set-key "[" 'skeleton-pair-insert-maybe) (global-set-key "{" 'skeleton-pair-insert-maybe) (global-set-key "\C-s" 'brf-word-search) (define-key function-key-map [(control tab)] [?\M-\t]) ;; weitere Tasten: (global-set-key (kbd "RET") 'newline-and-indent) (global-set-key (kbd "") 'delete-char) (global-set-key (kbd "") 'beginning-of-line) (global-set-key (kbd "") 'end-of-line) (global-set-key (kbd "") 'overwrite-mode) (global-set-key (kbd "C-+") 'overwrite-mode) (global-set-key (kbd "C-") 'forward-word) (global-set-key (kbd "C-") 'backward-word) (global-set-key (kbd "C-") 'beginning-of-buffer) (global-set-key (kbd "C-") 'end-of-buffer) (global-set-key (kbd "M-") 'scroll-other-window-down) (global-set-key (kbd "C-x C-b") 'brf-buffer-menu) (global-set-key (kbd "C-z |") 'brf-pipe-buffer-to-cmd) (global-set-key (kbd "C-!") 'brf-indent-buffer) (global-set-key (kbd "M-") 'brf-set-mark-ohne-highlight) (global-set-key (kbd "M-") 'brf-springe-zu-mark) (global-set-key (kbd "M-+") 'query-replace) (global-set-key (kbd "C-M-+") 'query-replace-regexp) (global-set-key (kbd "M-") 'brf-bwana-start) (global-set-key (kbd "C-") 'man) (global-set-key (kbd "C-") 'brf-templ) (global-set-key (kbd "M-") 'brf-insert-c-Funktion-Kommentar) (global-set-key (kbd "") 'brf-expand-abbrev-or-dabbrev) (global-set-key (kbd "C-") 'brf-FindNextLigatur) (global-set-key (kbd "M-") 'brf-FindNextDbl) (global-set-key (kbd "") 'ucs-insert) (global-set-key (kbd "C-") 'what-cursor-position) (global-set-key (kbd "M-") 'describe-char) (global-set-key (kbd "C-M-") 'brf-cycle-font) (global-set-key (kbd "") 'brf-toggle-truncate) (global-set-key (kbd "C-") 'brf-alles-untabify) (global-set-key (kbd "M-") 'auto-fill-mode) (global-set-key (kbd "") 'font-lock-mode) (global-set-key (kbd "C-") 'font-lock-fontify-buffer) (global-set-key (kbd "M-") 'whitespace-mode) (global-set-key (kbd "C-M-") 'brf-set-alpha) (global-set-key (kbd "") 'brf-toggle-ispell-sprache) (global-set-key (kbd "C-") 'flyspell-mode) (global-set-key (kbd "M-") 'ispell-buffer) (global-set-key (kbd "C-z f") 'brf-zeige-ispell-sprache) (global-set-key (kbd "") 'next-error) (global-set-key (kbd "C-M-") 'brf-open-as-admin) (global-set-key (kbd "") 'compile) (global-set-key (kbd "") 'other-window) (global-set-key (kbd "C-") 'brf-select-next-buffer) (global-set-key (kbd "M-") 'brf-select-previous-buffer) (global-set-key (kbd "") 'linum-mode) (global-set-key (kbd "C-") 'speedbar) (global-set-key (kbd "C-M-") 'brf-kill-other-buffer) (global-set-key (kbd "C-z T") 'translate) (global-set-key (kbd "C-z t") 'translate-at-point) (global-set-key (kbd "C-z E") 'translate-enter-translation) (global-set-key (kbd "C-M-") 'forward-sexp) (global-set-key (kbd "C-M-") 'backward-sexp) (global-set-key (kbd "C-z 1") 'brf-toggle-one-window) (global-set-key (kbd "C-z C-r") 'recentf-open-files) (global-set-key (kbd "C-z s") 'brf-sunrise-install) (global-set-key (kbd "C-z C-s") 'brf-start-sunrise) (global-set-key (kbd "C-z C-z") 'sunrise) (global-set-key (kbd "M-h") 'ns-do-hide-emacs) (global-set-key (kbd "M-H") 'mark-paragraph) (global-set-key (kbd "C-ä") 'toggle-input-method) (global-set-key (kbd "C-x RET C-ä") 'set-input-method) (global-set-key (kbd "C-M-ä") 'indent-region) (global-set-key (kbd "M-ä") 'delete-horizontal-space) ;; =================== ;; LaTeX betreffendes: ;; =================== ;; A4 default paper (setq TeX-a4-paper t) ;; LaTeX Paket reftex herrichten: ;; ------------------------------ (setq reftex-plug-into-AUCTeX t) (setq reftex-bibpath-environment-variables '("~/Library/texmf/bibtex/bib")) (setq reftex-default-label-alist-entries '(Sideways AMSTeX LaTeX)) (setq reftex-label-alist '(("\\figcaption" ?f "fig:" nil 1) ("\\tabcaption" ?t "tab:" nil 1) ("TAufg" ?A "auf:" "~\\ref{%s}" nil ("Aufgabe" "Teilaufgabe" "Aufg." "Teilaufg." "Lösung" "Lös." "Lsg.")) ("Satz" ?Z "satz:" "~\\ref{%s}" nil ("Satz" "Theorem")) ("Definition" ?D "def:" "~\\ref{%s}" nil ("Definition" "Def.")) ("Beispiel" ?B "bsp:" "~\\ref{%s}" nil ("Beispiel" "Beisp." "Bsp.")) ("Lemma" ?L "lem:" "~\\ref{%s}" nil ("Lemma" "Lemmata" "Lemmas")) (nil ?e nil nil nil ("Gleichung" "Gl.")) ("\\linelabel{*}" ?s nil nil 1000 ("line" "Line" "Zeile")) ("\\TA" ?A "auf:" nil 1) ("\\NA" ?A "auf:" nil 1) ("\\NL" ?A "auf:" nil 1) ("\\starlabel" ?e "eq:" nil 1))) ;; LaTeX Tastenbelegung und Modi: ;; ------------------------------ (defun brf-TeX-Inserting (sta stb stc num) "Fügt nach Eingabe von stb die Zeichen stc ein und setzt den Cursor num Positionen zurück. Mit Prefix wird nichts ersetzt. Ebensowenig, wenn das vorausgehendende Zeichen sta (etwa ein \) war." (if (null current-prefix-arg) (progn (if (= (preceding-char) sta ) (insert stb) (progn (insert stc) (backward-char num)))) (insert stb))) ;; Schlüsselwörter in LaTeX erkennen (defun brf-lade-einstellungen() "Liest im AucTeX Mode die Befehlsnamen von LaTeX ein." (interactive) (TeX-normal-mode 1) (TeX-run-style-hooks "schule2e")) ;; Templates auf Taste legen: ;; ----------------------------------- (defun brf-insert-half-quotes () "Setzt halbe deutsche Anführungen in LaTeX Buffer ein" (interactive) (insert "\\glq \\grq{}") (goto-char (forward-point -6))) (defun brf-insert-half-guillemets () "Setzt halbe deutsche Guillemets in LaTeX Buffer ein" (interactive) (insert "\\frq \\flq{}") (goto-char (forward-point -6))) (defun brf-insert-frac() "Setzt frac{}{} in LaTeX Buffer ein." (interactive) (insert "\\frac{}{}") (goto-char (forward-point -3))) (defun brf-insert-sqrt() "Setzt sqrt{} in LaTeX Buffer ein." (interactive) (insert "\\sqrt{}") (goto-char (forward-point -1))) (defun brf-insert-neueZeile() "Setzt ein newline (zwei Backslashes) ein." (interactive) (insert "\\\\")) (defun brf-insert-backslash() "Setzt einen einzelnen Backslash ein." (interactive) (insert "\\")) (defun brf-insert-displaymath () "Setzt die displaymath-Umgebung ein." (interactive) (insert "\\[\n\n\\]") (goto-char (forward-point -3)) ) (defun brf-insert-psplot(Xmin Ymin Xmax Ymax) (interactive "nXmin: \nnYmin: \nnXmax: \nnYmax: ") (insert (concat "\\begin{pspicture*}(" (number-to-string Xmin) "," (number-to-string Ymin) ")(" (number-to-string Xmax) "," (number-to-string Ymax) ") \\psaxes[ticksize=1pt](0,0)(" (number-to-string (+ Xmin 0.01)) "," (number-to-string (+ Ymin 0.01)) ")(" (number-to-string (- Xmax 0.01)) "," (number-to-string (- Ymax 0.01)) ") \\psplot[plotpoints=100]{" (number-to-string Xmin) "}{" (number-to-string Xmax) "}{} \\end{pspicture*} ")) (goto-char (forward-point -19))) ;; Umschaltung der Engines in AUCTeX: (defun LuaEngineEIN () "Schaltet die Lua-Engine EIN" (interactive) (TeX-engine-set "luatex") (message "LuaTeX Engine aktiviert.") ) (defun DefaultEngineEIN () "Schaltet die default Engine EIN" (interactive) (TeX-engine-set "default") (message "Default TeX Engine aktiviert.") ) ;; (n)german bestimmt die Quote-Zeichen, die AucTeX einsetzt. ;; Es sollen französische sein (setq LaTeX-german-open-quote "\">") (setq LaTeX-german-close-quote "\"<") (setq LaTeX-german-quote-after-quote t) ;; Klammerkonstruktionen automatisieren, (), {}, und [] sind schon automatisch ;; auch noch $...$ machen: (defun brf-TeX-dollarm () (interactive) (brf-TeX-Inserting ?\\ "$" "$$" 1)) (add-hook 'LaTeX-mode-hook 'turn-on-auto-fill) (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (add-hook 'LaTeX-mode-hook '(lambda() (setq fill-column 78))) (add-hook 'LaTeX-mode-hook (function (lambda () (local-set-key (kbd "") 'TeX-next-error) (local-set-key (kbd "C-") 'preview-at-point) (local-set-key (kbd "M-") 'preview-buffer) (local-set-key (kbd "$") 'brf-TeX-dollarm) (local-set-key (kbd "C-<") 'TeX-electric-macro) (local-set-key (kbd "C-#") 'LaTeX-math-mode) (local-set-key (kbd "C-c C-t C-l") 'LuaEngineEIN) (local-set-key (kbd "C-c C-t C-d") 'DefaultEngineEIN) (local-set-key (kbd "C-z C-t") 'brf-tausender-trenner) (local-set-key (kbd "C-c f") 'brf-insert-frac) (local-set-key (kbd "C-c Q") 'brf-insert-half-quotes) (local-set-key (kbd "C-c G") 'brf-insert-half-guillemets) (local-set-key (kbd "C-c s") 'brf-insert-sqrt) (local-set-key (kbd "C-c n") 'brf-insert-neueZeile) (local-set-key (kbd "C-c 7") 'brf-insert-backslash) (local-set-key (kbd "C-c d") 'brf-insert-displaymath) (local-set-key (kbd "C-c p") 'brf-insert-psplot) (local-set-key (kbd "C-z C-n")'brf-lade-einstellungen)))) ;; (setq TeX-lisp-directory "~/lib/elisp/auctex") ;; auctex und preview-latex aktivieren ;; (require 'tex-site) (load "auctex.el" nil t t) (load "preview-latex.el" nil t t) ;; ... und anpassen: (setq TeX-parse-self t) (setq TeX-auto-save t) (setq TeX-electric-escape t) (setq TeX-insert-braces nil) ;; ==================================== ;; time-stamps in Buffer aktualisieren: ;; ==================================== (add-hook 'find-file-hooks 'auto-insert) (require 'time-stamp) (add-hook 'write-file-hooks 'time-stamp) (set 'time-stamp-active t) (set 'time-stamp-format "%:d.%:m.%:y %02H:%02M:%02S %f") (defun brf-make-kopf-string (auf mark zu) "'mark' ist das Kommentarzeichen am Anfang der Zeile incl. evtl. Blanks. 'auf' ist das öffnende Kommentarzeichen (zB '(*' bei Pascal) und 'zu' das schließende." (concat auf "Erzeugt am: " (format-time-string "%d.%m.%Y %H:%M:%S %Z") "\n" mark "von " (user-full-name) " auf "(system-name) " \n" mark "Letzte Bearbeitung:\n" mark " Time-stamp: <>\n" zu "\n")) (setq auto-insert-alist '( (("\\.\\(tex\\|sty\\)\\'" . "LaTeX-Kommentar") . (insert (brf-make-kopf-string "% " "% " ""))) (("\\.\\([Hh]\\|hh\\|hpp\\|[Cc]\\|cc\\|cpp\\|cxx\\|m\\|java\\|pov\\)\\'" . "C-Kommentar") . (insert (brf-make-kopf-string "// " "// " ""))) (("\\.pas\\'" . "Pascal-Kommentar") . (insert (brf-make-kopf-string "(* " " * " " *)"))) (("[Mm]akefile$" . "Makefile-Kommentar") . (insert (brf-make-kopf-string "# " "# " ""))) (("\\.*\\'" . "Shell/Perl/Python-Kommentar") . (concat "#!/bin/bash\n#!/usr/bin/perl -w\n#!/usr/bin/env python2.7\n# -*- coding: utf-8 -*-\n" (brf-make-kopf-string "# " "# " ""))))) (defun brf-insert-time-stamp () "Einsetzen eines Zeitstempels in den Buffer." (interactive) (insert (brf-make-kopf-string "% " "% " ""))) ;; ===================== ;; Programmierungs-Modi: ;; ===================== ;; C-Mode und Java-Mode herrichten: ;; -------------------------------- (defun brf-c-mode-hook() (c-set-style "ellemtel") (setq c-auto-newline t) (local-set-key (kbd ";") 'self-insert-command) (local-set-key (kbd "(") 'skeleton-pair-insert-maybe) (c-set-offset 'topmost-intro -2) (c-set-offset 'inline-open -2)) (defalias 'c-mode 'c++-mode) (add-hook 'c-mode-common-hook 'brf-c-mode-hook) ; (add-hook 'c-mode-common-hook ; (function (lambda () (paren-toggle-open-paren-context 1)))) (add-hook 'java-mode-hook 'brf-c-mode-hook) ;; Perl-Mode herrichten: ;; --------------------- (defun brf-cperl-mode-hook() (setq cperl-auto-newline t) (setq cperl-indent-level 3) (setq cperl-brace-offset 0) (setq cperl-continued-brace-offset -3) (setq cperl-label-offset -3) (setq cperl-continued-statement-offset 3) (setq cperl-merge-trailing-else nil) (setq cperl-extra-newline-before-brace t) (local-set-key (kbd "(") 'skeleton-pair-insert-maybe) (local-set-key (kbd "[") 'skeleton-pair-insert-maybe) (local-set-key (kbd ";") 'self-insert-command)) (defalias 'perl-mode 'cperl-mode) (add-hook 'cperl-mode-hook 'brf-cperl-mode-hook) ;; Python-mode herrichten: ;; ----------------------- ;; (require 'epy-setup) ;; (require 'epy-python) ;; (require 'epy-completion) ;; (require 'epy-editing) ;; (setenv "PYMACS_PYTHON" "python2.7") ;; Mathematica-Mode laden: ;; ----------------------- (autoload 'mma-mode "mma.el" "Major mode for editing Mathematica files" t) (setq auto-mode-alist (cons '("\\.m\$" . mma-mode) auto-mode-alist)) (add-hook 'mma-mode-hook 'imenu-add-menubar-index) (add-hook 'mma-mode-hook '(lambda() (local-set-key (kbd "C-z u") 'brf-mma-umlaute))) ;; HTML-helper-Mode: ;; ----------------- ;; html-mode soll automatisch auf html-helper-mode schalten: ;; (add-hook 'html-mode-hook '(lambda() (html-helper-mode))) ;; html-helper-mode und eigene Addons: (defun brf-html-helper-mode-hook() (setq mode-name "HTML") (turn-on-font-lock) (turn-on-auto-fill) (setq html-helper-verbose nil) (setq fill-column 75) (local-set-key (kbd "C-z U") 'brf-html-umlaute) (local-set-key (kbd "C-z L") 'brf-lower-html-tags) (local-set-key (kbd "C-z i") 'brf-tidy-html) (local-set-key (kbd "C-z u") 'brf-update-html) (local-set-key (kbd "C-<") 'tempo-complete-tag)) (setq html-helper-htmldtd-version "\n\n") (setq html-helper-new-buffer-template '(html-helper-htmldtd-version "\n\n" "\n" "\n\n" "" p "\n" "\n" "\n" "\n" "\n\n" "\n" "

" p "

\n\n" p "\n\n
\n" "
" html-helper-address-string "
\n" html-helper-timestamp-start html-helper-timestamp-end "\n\n\n")) (autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t) (add-hook 'html-helper-mode-hook 'brf-html-helper-mode-hook) (setq auto-mode-alist (cons '("\\.s?html?$" . html-helper-mode) auto-mode-alist)) (setq html-helper-address-string "Erstellt von: Peter Breitfeld, 88348 Bad Saulgau, Germany
eMail: phbrf@t-online.de
Hier geht's zu meiner eigenen Homepage") (setq html-helper-timestamp-hook 'brf-html-helper-insert-timestamp) (defun brf-html-helper-insert-timestamp() (insert "
\n") (html-helper-default-insert-timestamp)) (defun brf-lower-html-tags() "Wandelt alle html-tags in Kleinbuchstaben um. Tags, die mit \"]" nil t) (replace-match (downcase (match-string 1)) t t nil 1)))) ;; Eine Erklärung für obige replace-match Parameter: ;; (match-string 1) liefert den ersten Teilstring \\(...\\) der ;; Suche, der sonst als \1 referenziert wird (0 würde alles wählen). ;; Das erste 't' sagt, dass keine case-Umwandlungen vorgenommen ;; werden sollen. Das zweite, dass die Ersetzung literal vorgenommen ;; werden soll. Das folgende nil, dass in einem Buffer und nicht in ;; einem String gesucht wurde, sonst hätte man hier den zu ;; durchsuchenden String anzugeben. Schließlich sagt die 1, dass nur \1 ;; ersetzt werden soll. ;; folgende Funktion rückt hübsch ein unter Verwendung des ;; externen Programmes /usr/bin/tidy (defun brf-tidy-html () "Indentation von html unter Verwendung von /usr/bin/tidy" (interactive) (save-excursion) (call-process-region (point-min) (point-max) "/usr/bin/tidy" t '(t nil) "-i")) (defun brf-update-html() "Wandelt alle Umlaute in HTML-Zeichen um und setzt alle tags auf lowercase. Ruft dazu die beiden Funktionen 'brf-lower-html-tags' und 'brf-html-umlaute' auf." (interactive) (brf-lower-html-tags) (brf-html-umlaute)) ;; pov-mode für povray laden: (defun brf-povray-hook () (local-set-key (kbd "<") 'skeleton-pair-insert-maybe) (local-set-key (kbd "{") 'skeleton-pair-insert-maybe) (local-set-key (kbd "[") 'skeleton-pair-insert-maybe) (local-set-key (kbd "(") 'skeleton-pair-insert-maybe)) (add-hook 'pov-mode-hook 'brf-povray-hook) (add-to-list 'load-path "~/lib/elisp/pov-mode") (autoload 'pov-mode "pov-mode" "PoVray scene file mode" t) (add-to-list 'auto-mode-alist '("\\.pov$" . pov-mode)) (add-to-list 'auto-mode-alist '("\\.inc$" . pov-mode)) ;;;; ============================================== ;;;; Ab hier schreibt Customize in die .emacs rein: ;;;; ============================================== (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(LaTeX-command "latex -shell-escape -synctex=1") '(LaTeX-default-environment "equation") '(LaTeX-float "tbp") '(LaTeX-math-abbrev-prefix "#") '(LaTeX-math-menu-unicode t) '(LaTeX-top-caption-list (quote ("table"))) '(TeX-PDF-mode t) '(TeX-arg-right-insert-p t) '(TeX-auto-local "/Users/brf/.emacs.d/auctex/auto/") '(TeX-command-list (quote (("TeX" "%(PDF%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run plain TeX") ("LaTeX" "%`%l --jobname=%s %(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX") ("Für LuaLaTeX + Auto-pst-pdf" "lualatex -shell-escape -synctex=1 %s" TeX-run-TeX nil (latex-mode) :help "Run LuaLaTeX") ("Makeinfo" "makeinfo %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output") ("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with HTML output") ("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX") ("ConTeXt" "texexec --once --texutil %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt once") ("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until completion") ("BibTeX" "bibtex %s" TeX-run-BibTeX nil (latex-mode) :help "Run BibTeX") ("Rebuild PS from TeX" "%`%l%(mode)%' %t && dvips -Pps -G0 %d" TeX-run-command nil t :help "Lauf tex->dvi->ps durchführen") ("View" "%V" TeX-run-discard-or-function nil t :help "Run Viewer") ("Print (dvips)" "%p" TeX-run-command t t :help "Print the file") ("Duplex Print (dvips)" "dviduplex %s" TeX-run-command t t :help "Duplex Druck von dvi oder ps") ("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible TeX-queue-command) ("Index" "makeindex -c -g -s deutsch %s" TeX-run-command nil (latex-mode) :help "Create index file") ("Acrobat" "open -a 'Adobe Acrobat Professional.app' %s.pdf" TeX-run-command nil t :help "PDF in Acrobat anzeigen") ("Skim" "open -a 'Skim.app' %s.pdf" TeX-run-command nil t :help "PDF in Skim anzeigen") ("Zeige in Preview" "open -a 'Preview.app' %s.pdf" TeX-run-command nil t :help "PDF in Preview anzeigen") ("Ghostview" "gv %s.ps" TeX-run-silent nil t :help "Postscript in gv anzeigen") ("Umwandlung mit dvi2pdf" "dvi2pdf %s" TeX-run-command t t :help "Wandle DVI oder Postscript in PDF") ("Heftchen mit booklet" "booklet %s" TeX-run-interactive t t :help "Erzeuge Booklet") ("Check" "lacheck %s" TeX-run-compile nil t :help "Check LaTeX file for correctness") ("Other" "" TeX-run-command t t :help "Run an arbitrary command")))) '(TeX-output-view-style (quote (("^dvi$" ("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$") "%(o?)dvips -t landscape %d -o && gv %f") ("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" "%(o?)dvips %d -o && gv %f") ("^dvi$" ("^\\(?:a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4\\)$" "^landscape$") "%(o?)xdvi %dS -paper a4r -s 0 %d") ("^dvi$" "^\\(?:a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4\\)$" "%(o?)xdvi %dS -paper a4 %d") ("^dvi$" ("^\\(?:a5\\(?:comb\\|paper\\)\\)$" "^landscape$") "%(o?)xdvi %dS -paper a5r -s 0 %d") ("^dvi$" "^\\(?:a5\\(?:comb\\|paper\\)\\)$" "%(o?)xdvi %dS -paper a5 %d") ("^dvi$" "^b5paper$" "%(o?)xdvi %dS -paper b5 %d") ("^dvi$" "^letterpaper$" "%(o?)xdvi %dS -paper us %d") ("^dvi$" "^legalpaper$" "%(o?)xdvi %dS -paper legal %d") ("^dvi$" "^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d") ("^dvi$" "." "%(o?)xdvi %dS %d") ("^pdf$" "." "open -a Preview.app %o") ("^html?$" "." "open %o")))) '(TeX-print-command "%(o?)dvips -P%p -G0 %r %s") '(TeX-printer-default "lpr") '(TeX-source-correlate-method (quote auto)) '(TeX-style-local "/Users/brf/.emacs.d/auctex/style/") '(TeX-view-program-list (quote (("Preview" "open -a Preview.app %o")))) '(TeX-view-program-selection (quote (((output-dvi style-pstricks) "xdvi") (output-dvi "xdvi") (output-pdf "Preview") (output-html "xdg-open")))) '(TeX-view-style (quote (("^a4\\(?:dutch\\|paper\\|wide\\)?\\|sem-a4$" "%(o?)xdvi -paper a4 %d") ("^a5\\(?:comb\\|paper\\)?$" "%(o?)xdvi -paper a5 %d") ("^b5paper$" "%(o?)xdvi -paper b5 %d") ("^letterpaper$" "%(o?)xdvi -paper us %d") ("^legalpaper$" "%(o?)xdvi -paper legal %d") ("^executivepaper$" "%(o?)xdvi -paper 7.25x10.5in %d") ("^landscape$" "%(o?)xdvi -paper a4r -s 0 %d") ("." "%(o?)xdvi %d")))) '(blink-cursor-mode nil) '(browse-url-browser-function (quote browse-url-default-macosx-browser)) '(browse-url-generic-program "launchSafari") '(calc-info-filename "calc.info" t) '(canlock-password "b71fc55f098e6af874272137c6f2d39f4c2b108b") '(column-number-mode t) '(cua-enable-cursor-indications t) '(cua-mode t nil (cua-base)) '(cua-normal-cursor-color (quote (bar . "red"))) '(cua-overwrite-cursor-color (quote hbar)) '(cua-read-only-cursor-color (quote box)) '(cua-remap-control-z nil) '(default-enable-multibyte-characters t t) '(default-frame-alist (quote ((right-fringe) (left-fringe) (tool-bar-lines . 0) (foreground-color . "black") (background-color . "cornsilk") (height . 65) (width . 81) (top . 22) (left . 5) (mouse-color . "OrangeRed") (vertical-scroll-bars . right) (menu-bar-lines . 1) (alpha . 85) (font . "DejaVu Sans Mono-17")))) '(default-major-mode (quote text-mode) t) '(dired-guess-shell-alist-user (quote (("\\.pdf$" "open -a Preview") ("\\.jpg$ \\|\\.JPG$\\|\\.jpeg$\\|\\.gif$\\|\\.png$" "open -a Preview") ("\\.dvi$" "xdvi") ("\\.xls$" "open -a Excel") ("\\.doc$\\|\\docx$" "open -a Word") ("\\.ppt$" "open -a PowerPoint")))) '(face-default-stipple "gray3" t) '(gnus-cite-attribution-prefix "In article\\|in\\|im <\\|On\\|Am \\(Mon\\|Mo\\|Tue\\|Di\\|Wed\\|Mi\\|Thu\\|Do\\|Fri\\|Fr\\|Sat\\|Sa\\|Sun\\|So\\),\\|----- ?Original Message ?-----") '(gnus-cite-attribution-suffix "\\(\\(wrote\\|writes\\|said\\|says\\|schreibt\\|schrieb\\|>\\)\\(:\\|\\.\\.\\.\\)\\|----- ?Original Message ?-----\\)[ ]*$") '(gnus-default-charset (quote utf-8)) '(gnus-emphasis-alist (quote ((("\\*" . "\\*") nil gnus-emphasis-bold) (("_" . "_") nil gnus-emphasis-underline) (("/" . "/") nil gnus-emphasis-italic) (("_/" . "/_") nil gnus-emphasis-underline-italic) (("_\\*" . "\\*_") nil gnus-emphasis-underline-bold) (("\\*/" . "/\\*") nil gnus-emphasis-bold-italic) (("_\\*/" . "/\\*_") nil gnus-emphasis-underline-bold-italic) ("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_[^_]\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)" 2 3 gnus-emphasis-underline)))) '(inhibit-startup-screen t) '(initial-scratch-message nil) '(ls-lisp-dirs-first t) '(ls-lisp-emulation (quote MacOS)) '(max-lisp-eval-depth 1000) '(max-specpdl-size 2000) '(message-log-max 2000) '(minibuffer-message-timeout 2 t) '(ns-alternate-modifier (quote none)) '(ns-command-modifier (quote meta)) '(org-log-done (quote time)) '(pov-tab-width 4) '(preview-image-type (quote png)) '(preview-preserve-counters t) '(ps-print-color-p nil) '(python-python-command "python2.7") '(recentf-exclude (quote ("/Users/brf/News/" "/Users/brf/\\.newsrc" "/Users/brf/Mail/"))) '(recentf-max-menu-items 32) '(recentf-max-saved-items 32) '(recentf-menu-before "Insert File...") '(recentf-menu-title "Open Recent (C-z C-r)") '(recentf-mode t) '(reftex-insert-label-flags (quote ("s" "s"))) '(rmail-display-summary t) '(sentence-end-double-space nil) '(shell-command-default-error-buffer nil t) '(shell-mode-hook (quote (ansi-color-for-comint-mode-on))) '(show-paren-mode t) '(sr-show-hidden-files t) '(suggest-key-bindings 4) '(tab-stop-list (quote (4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100))) '(tex-dvi-view-command (quote (cond ((eq window-system (quote x)) "xdvi") ((eq window-system (quote w32)) "yap") (t "dvi2tty * | cat -s"))))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(comint-highlight-input ((t (:foreground "magenta" :slant oblique)))) '(completions-first-difference ((t (:foreground "red")))) '(flyspell-duplicate ((t (:underline t)))) '(flyspell-duplicate-face ((((class color)) (:foreground "Gold3" :underline t))) t) '(flyspell-incorrect-face ((((class color)) (:foreground "OrangeRed" :underline t))) t) '(font-latex-sectioning-5-face ((((class color) (background light)) (:foreground "blue4" :weight bold)))) '(font-latex-sedate-face ((((class color) (background light)) (:foreground "seagreen")))) '(font-latex-string-face ((t (:foreground "slate gray")))) '(font-lock-string-face ((((class color) (background light)) (:foreground "slate gray")))) '(gnus-cite-5 ((((class color) (background light)) (:foreground "DarkGoldenrod4")))) '(html-helper-tag-face ((t (:foreground "blue" :weight normal)))) '(moccur-face ((((class color) (background light)) (:background "Orange" :weight bold)))) '(mode-line ((nil (:background "goldenrod" :foreground "black")))) '(show-paren-mismatch ((((class color)) (:background "magenta" :foreground "white")))) '(sr-active-path-face ((t (:background "orange" :foreground "black" :weight bold :height 180)))) '(sr-highlight-path-face ((t (:background "yellow" :foreground "black" :weight bold :height 120)))) '(sr-passive-path-face ((t (:background "white" :foreground "darkgray" :weight bold :height 180)))) '(variable-pitch ((t (:height 120 :family "helv")))) '(whitespace-line ((t (:foreground "magenta" :underline t))))) (garbage-collect) (put 'scroll-left 'disabled nil) (put 'dired-find-alternate-file 'disabled nil)