;/////////////////////////////////////////////////////////////////////
; Konfigurations-Datei _emacs fr Emacs 20.4 unter MS-Windows
;                     Dr. Justus Noll      c't 22/99
;/////////////////////////////////////////////////////////////////////

;======================================================================
; Verzeichnisse
;======================================================================

(setq gs-dir "c:\\gstools\\gsview\\")

;======================================================================
; Display und Font-Men 
;======================================================================

 (standard-display-european 1 1); ... 1 1, sonst kein Mule-Men!

 (setq w32-use-w32-font-dialog t) ; Windows-Font-Men, Unix: nil

;======================================================================
; Rahmengre und Farben
;======================================================================

 (setq default-frame-alist 
  '(
    (top . 4) (left . 20)
    (width . 80) (height . 34)
    (cursor-color . "red")
    (background-color . "light grey")
    (vertical-scroll-bars . right)
    (font . "-*-Lucida Console-normal-r-*-*-20-100-*-*-m-*-*-iso8859-1")
   )
  )

; Textfarben

(set-face-foreground 'region "white")
(set-face-background 'region "black")

;======================================================================
; Klingel und Uhr
;======================================================================

; Klingelzeichen abstellen

(setq visible-bell t)

; Uhr im 24-Stunden-Format anzeigen

(setq display-time-24hr-format t)
(display-time)

;======================================================================
; Drucker
;======================================================================

  (setq printer-name "LPT2:") ; nur falls Drucker nicht LPT1

;======================================================================
; Umbruch, Lschen, ^M-Filter, Syntax-Farben (Font Lock), TEMP
;======================================================================

; Automatischer Zeilenumbruch nach 78 Zeichen

(setq fill-column 78)
(add-hook 'text-mode-hook 'turn-on-auto-fill) 

; Aufruf ohne Argument lscht ganze Zeile

(setq kill-whole-line t)

; Beim Suchen immer genaue Schreibweise finden

(setq-default case-fold-search nil)

; Ausgabe von ^M in der Shell filtern

(add-hook 
 'comint-output-filter-functions 
 'shell-strip-ctrl-m nil t)

; Font-Lock global und mit Hchstwert

(global-font-lock-mode t) 
(setq font-lock-maximum-decoration t)

; Temporres Windows-Verzeichnis setzen

(setenv "TEMP" "c:/windows/temp")
(setenv "TMP" "c:/windows/temp")

;======================================================================
; Neue Funktionen
;======================================================================

; Funktionen zum Einrcken, Lschen, Doppeln

(defun indent-three-spaces ()
  "3 Leerzeichen einruecken."
  (interactive)
  (beginning-of-line)
  (insert "   ")
  (next-line 1))

(defun kill-current-line ()
  "Aktuelle Zeile loeschen."
  (interactive)
  (beginning-of-line)
  (kill-line))

(defun double-current-line ()
  "Aktuelle Zeile verdoppeln."
  (interactive)
  (beginning-of-line)
  (kill-line)
  (yank)
  (yank)
  (previous-line 1))

(defun kill-current-or-next-word ()
  "Aktuelles oder naechstes Wort loeschen."
  (interactive)
  (forward-word 1)
  (backward-kill-word 1))
   ;(delete-char 1))

; Dateien laden

(defun load-emacs-file ()
 "_emacs laden."
 (interactive)
 (find-file "~/_emacs"))

(defun load-tex-site-file ()
 "tex-site.el laden."
 (interactive)
 (find-file "c:/emacs/site-lisp/tex-site.el")) ; an Installation anpassen!

(defun next-buffer ()
 "Schaltet zwischen den beiden letzten Fenstern hin und her."
 (interactive)
 (switch-to-buffer-other-window nil)
 (delete-other-windows))

; Drucken

(defun win-shell-befehl (prg)
 "Programm ausfuehren unter Windows."
  (shell-command 
   (concat prg buffer-file-name))) 

(defun ps-name ()
 "Name fr PS-Datei."
 (concat (file-name-nondirectory buffer-file-name) ".ps"))

(defun np-drucken () 
 "Druck Puffer mit Windows Notepad."
 (interactive)
 (win-shell-befehl "notepad/p "))

(defun wp-drucken () 
 "Druck Puffer mit Windows Notepad."
 (interactive) 
 (win-shell-befehl "wordpad ")) ; /p Sofortdruck

(defun gs-drucken () 
 "Druck mit GhostSkript."
 (interactive)
  (ps-print-buffer (ps-name))
   (shell-command (concat gs-dir "gsview32 " (ps-name))))

;======================================================================
; Neue Tastenbelegungen
;======================================================================

; Tastenblock HOME, BILD usw.

(global-set-key [kp-home] 'beginning-of-line)
(global-set-key [kp-end] 'end-of-line)
(global-set-key [home] 'beginning-of-line)
(global-set-key [end] 'end-of-line)
(global-set-key [C-home] 'beginning-of-buffer)
(global-set-key [C-end] 'end-of-buffer)

; Cut, Paste und Copy ber Zwischenablage

(global-set-key [S-delete] 'clipboard-kill-region)
(global-set-key [S-insert] 'clipboard-yank)
(global-set-key [C-insert] 'clipboard-kill-ring-save)

(load "cua-mode") ; C-c, C-s, C-v wie Windows, 
(CUA-mode t)      ; wenn Region markiert, C-z fr undo

; Markieren, Lschen, Gehe zu Zeile...

(global-set-key [delete] 'delete-char)
(global-set-key [C-backspace] 'backward-kill-word)  
(global-set-key [f1] 'goto-line)         

; Funktionstasten fr Datei-Management

(global-set-key [f2] 'save-buffer)
(global-set-key [f3] 'find-file) 
(global-set-key [C-f3] 'load-emacs-file)
(global-set-key [S-f3] 'load-tex-site-file)
(global-set-key [f4] 'speedbar) 
(global-set-key [M-f4] 'kill-buffer)
(global-set-key [S-f4] 'next-buffer)

; Funktionstasten zum Einrcken, Lschen, Doppeln, Lesezeichen

(global-set-key [f5] 'indent-three-spaces); tex-site.el: [C-F5] LaTeX
(global-set-key [f6] 'kill-line)          ; tex-site.el: [C-F6] Yap
(global-set-key [f7] 'double-current-line)
(global-set-key [f8] 'kill-current-or-next-word)
(global-set-key [f9] 'bookmark-set)
(global-set-key [C-f9] 'bookmark-jump) 

; Funktionstasten zum Drucken

(global-set-key [C-f12] 'np-drucken) 
(global-set-key [S-f12] 'wp-drucken) 
(global-set-key [M-f12] 'gs-drucken) 

; Region vom Mark bis zum Cursor wird markiert

(transient-mark-mode t)  

; in tex-site.el: [C-Tab] TeX-Completion

;====================================================================== 
; Die TeX-Konfigurationsdatei wird geladen 
;======================================================================

(load "tex-site")
