248 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			248 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
;;  David's wonderful .emacs file!
 | 
						|
;;
 | 
						|
 | 
						|
;;
 | 
						|
;;  Keep track of which version of emacs we are running
 | 
						|
;;
 | 
						|
(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
 | 
						|
 | 
						|
;;
 | 
						|
;;  Auto-loaded files
 | 
						|
;;
 | 
						|
 | 
						|
; mdw figure out why swapping these two lines below is strange
 | 
						|
(set-background-color "Black") 
 | 
						|
;(set-background-color "DarkBlack") 
 | 
						|
 | 
						|
(set-foreground-color "tan") 
 | 
						|
;;(set-default-font "-adobe-courier-bold-r-normal--14-140-75-75-m-90-iso8859-1")
 | 
						|
(set-default-font "-bitstream-terminal-bold-r-normal--18-140-100-100-c-110-iso8859-1")
 | 
						|
;;(set-face-foreground 'modeline "black") 
 | 
						|
 | 
						|
(set-cursor-color "yellow") 
 | 
						|
 | 
						|
(autoload `kumac-mode "kumac-mode")
 | 
						|
(autoload `xrdb-mode "xrdb-mode")
 | 
						|
 | 
						|
(setq auto-mode-alist
 | 
						|
      (append '(("\\.car$"   . fortran-mode) ; cards files
 | 
						|
                ("\\.inc$"   . fortran-mode)
 | 
						|
                ("\\.kumac$" . kumac-mode)   ; KUIP macros
 | 
						|
                ("\\.Xdefaults$"    . xrdb-mode)
 | 
						|
                ("\\.Xenvironment$" . xrdb-mode)
 | 
						|
                ("\\.Xresources$"   . xrdb-mode)
 | 
						|
                ("*.\\.ad$"         . xrdb-mode)
 | 
						|
               )
 | 
						|
               auto-mode-alist))
 | 
						|
 | 
						|
;
 | 
						|
; Turn on line numbers in whatever buffer we are in
 | 
						|
;
 | 
						|
(line-number-mode 1)
 | 
						|
 | 
						|
;
 | 
						|
;  Make the default mode for an empty file be text mode rather than fundamental
 | 
						|
;
 | 
						|
(setq default-major-mode 'text-mode)
 | 
						|
 | 
						|
;
 | 
						|
; This stuff controls version numbers: the previous 5 versions of the
 | 
						|
; file are kept as file.~n~; the earlier versions are silently deleted.
 | 
						|
;
 | 
						|
;(setq version-control t)
 | 
						|
;(setq kept-new-versions 4)
 | 
						|
;(setq kept-old-versions 0)
 | 
						|
;(setq delete-old-versions t)
 | 
						|
 | 
						|
;
 | 
						|
; Always highlight the current selection
 | 
						|
;
 | 
						|
(setq-default transient-mark-mode t)
 | 
						|
 | 
						|
;
 | 
						|
;  Modifications to fortran mode
 | 
						|
;
 | 
						|
(setq fortran-comment-indent-style nil)
 | 
						|
(setq fortran-do-indent 2)
 | 
						|
(setq fortran-if-indent 2)
 | 
						|
(setq fortran-continuation-char "+")
 | 
						|
 | 
						|
;
 | 
						|
;  Modifications to TeX mode
 | 
						|
;
 | 
						|
(setq-default tex-default-mode 'latex-mode)
 | 
						|
(setq tex-dvi-command "xdvi")
 | 
						|
(add-hook 'latex-mode-hook
 | 
						|
  '(lambda ()
 | 
						|
    (auto-fill-mode 1)
 | 
						|
    (set-fill-column 76)
 | 
						|
    (modify-syntax-entry ?\$ ".")
 | 
						|
))
 | 
						|
(add-hook 'tex-mode-hook
 | 
						|
  '(lambda ()
 | 
						|
    (auto-fill-mode 1)
 | 
						|
    (set-fill-column 76)))
 | 
						|
;
 | 
						|
; Allow the downcase-region command
 | 
						|
;
 | 
						|
(put 'downcase-region 'disabled nil)
 | 
						|
(put 'upcase-region 'disabled nil)
 | 
						|
 | 
						|
;
 | 
						|
; Highlight matching parentheses (doesn't work in xemacs)
 | 
						|
;
 | 
						|
(cond ((not running-xemacs)
 | 
						|
      (show-paren-mode 1)
 | 
						|
))
 | 
						|
;
 | 
						|
 | 
						|
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
;;
 | 
						|
;;  Font-lock mode (colorization of text) customization
 | 
						|
;;
 | 
						|
;
 | 
						|
; Invoked differently in emacs and xemacs
 | 
						|
;
 | 
						|
(cond ((not running-xemacs)
 | 
						|
      (global-font-lock-mode t)
 | 
						|
))
 | 
						|
 | 
						|
(cond (running-xemacs
 | 
						|
       (require 'font-lock)
 | 
						|
))
 | 
						|
 | 
						|
;
 | 
						|
;  Set the colors
 | 
						|
;
 | 
						|
(set-face-foreground 'highlight "Gold")
 | 
						|
;(set-face-background 'highlight "DarkSlateGray")
 | 
						|
(set-face-background 'highlight "Black")
 | 
						|
(set-face-foreground 'region    "Red")
 | 
						|
(set-face-background 'region    "Yellow")
 | 
						|
 | 
						|
;(set-face-background 'default   "Black")         ; default bg
 | 
						|
;(set-face-foreground 'default   "White")    ; default fg
 | 
						|
;(set-face-background 'modeline "White")      ; Line at bottom of buffer
 | 
						|
;(set-face-foreground 'modeline "blue")
 | 
						|
;(set-face-font  'modeline "*bold-r-normal*140-100-100*")
 | 
						|
 | 
						|
(make-face 'info-node)
 | 
						|
(make-face 'info-menu-5)
 | 
						|
(make-face 'info-xref)
 | 
						|
(make-face-bold 'info-node)
 | 
						|
(make-face-bold 'info-menu-5)
 | 
						|
(make-face-bold 'info-xref)
 | 
						|
(set-face-foreground 'info-node   "Orange")
 | 
						|
(set-face-foreground 'info-menu-5 "Orange")
 | 
						|
(set-face-foreground 'info-xref   "Orange")
 | 
						|
 | 
						|
(make-face 'font-lock-comment-face)
 | 
						|
(make-face 'font-lock-string-face)
 | 
						|
(make-face 'font-lock-keyword-face)
 | 
						|
(make-face 'font-lock-type-face)
 | 
						|
(make-face 'font-lock-function-name-face)
 | 
						|
(make-face 'font-lock-variable-name-face)
 | 
						|
(make-face 'font-lock-reference-face)
 | 
						|
 | 
						|
(setq font-lock-comment-face       'font-lock-comment-face)
 | 
						|
(setq font-lock-string-face        'font-lock-string-face)
 | 
						|
(setq font-lock-keyword-face       'font-lock-keyword-face)
 | 
						|
(setq font-lock-type-face          'font-lock-type-face)
 | 
						|
(setq font-lock-function-name-face 'font-lock-function-name-face)
 | 
						|
(setq font-lock-variable-name-face 'font-lock-variable-name-face)
 | 
						|
(setq font-lock-reference-face     'font-lock-reference-face)
 | 
						|
 | 
						|
(set-face-foreground font-lock-comment-face       "DarkGreen")
 | 
						|
(set-face-foreground font-lock-string-face        "Blue")
 | 
						|
(set-face-foreground font-lock-keyword-face       "Red")
 | 
						|
(set-face-foreground font-lock-type-face          "Goldenrod")
 | 
						|
(set-face-foreground font-lock-function-name-face "LightBlue")
 | 
						|
(set-face-foreground font-lock-variable-name-face "Magenta")
 | 
						|
(set-face-foreground font-lock-reference-face     "Coral")
 | 
						|
 | 
						|
;
 | 
						|
;  Modifications to C++ mode
 | 
						|
;
 | 
						|
(defun my-c-mode-common-hook ()
 | 
						|
;  (c-toggle-auto-hungry-state 1) 
 | 
						|
  (setq c-font-lock-keywords c-font-lock-keywords-2)
 | 
						|
  (setq c++-font-lock-keywords c++-font-lock-keywords-2)
 | 
						|
  (setq c-basic-offset 8)
 | 
						|
  (c-set-offset 'substatement-open 0)
 | 
						|
)
 | 
						|
 | 
						|
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
 | 
						|
 | 
						|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
						|
;
 | 
						|
; Match brackets by pressing %.
 | 
						|
; (define-key global-map "%" 'vi-type-paren-match)
 | 
						|
;
 | 
						|
;; VI-ish paren matching
 | 
						|
;; --
 | 
						|
;; originally attributed to: michael@uni-paderborn.de
 | 
						|
;; embellished by: jxh@cs.wustl.edu
 | 
						|
;;                 Fixed it so that it doesn't move off of a closing brace
 | 
						|
;;                 if no match is found.
 | 
						|
;; --
 | 
						|
;(defun vi-type-paren-match (arg)
 | 
						|
;  "Go to the matching parenthesis if on parenthesis otherwise insert %."
 | 
						|
;  (interactive "p")
 | 
						|
;  (let ((oldpos (point)))
 | 
						|
;    (cond
 | 
						|
;     ((looking-at "[{([]")
 | 
						|
;      (forward-sexp 1) (backward-char))
 | 
						|
;     ((looking-at "[])}]")
 | 
						|
;      (forward-char)
 | 
						|
;      (condition-case nil
 | 
						|
;          (progn
 | 
						|
;            (backward-sexp 1)
 | 
						|
;            (while (not (looking-at "[{([]")) (forward-char)))
 | 
						|
;        (error (progn
 | 
						|
;                 (backward-char)
 | 
						|
;                 (error (message "Unbalanced parentheses"))))))
 | 
						|
;     (t (self-insert-command (or arg 1))))))
 | 
						|
;(global-set-key "%" 'vi-type-paren-match)
 | 
						|
 | 
						|
;;
 | 
						|
;;  Modify the title of the frame to show the name of the machine and file
 | 
						|
;;
 | 
						|
(defconst se::system-short-name
 | 
						|
  (let* ((sys-name (system-name))
 | 
						|
         (per-match (string-match "\\." sys-name)))
 | 
						|
    (if (not per-match)
 | 
						|
        sys-name
 | 
						|
      (substring sys-name 0 per-match))))
 | 
						|
 | 
						|
(setq frame-title-format
 | 
						|
      '(multiple-frames
 | 
						|
        ("" invocation-name "@" se::system-short-name " - " "%b")
 | 
						|
        ("" invocation-name "@" se::system-short-name " - " "%b")))
 | 
						|
 | 
						|
;;
 | 
						|
;;  Turn on EDT emulation
 | 
						|
;;
 | 
						|
;(cond ((not running-xemacs)
 | 
						|
;       (edt-emulation-on)
 | 
						|
;))
 | 
						|
 | 
						|
;; enable display of european character set (mdw)
 | 
						|
;;(standard-display-european 1)
 | 
						|
 | 
						|
;; Enable wheelmouse support by default
 | 
						|
(require 'mwheel)
 | 
						|
 | 
						|
 | 
						|
(defun no-more-control-m ()
 | 
						|
  "Strip those annoying Control M chars from files that have been
 | 
						|
imported from MS-DOS."
 | 
						|
  (interactive)
 | 
						|
  (save-excursion
 | 
						|
    (goto-char (point-min))
 | 
						|
    (end-of-line)
 | 
						|
    (delete-char -1)
 | 
						|
    (while (= 0 (forward-line 1))
 | 
						|
      (end-of-line)
 | 
						|
      (delete-char -1))))
 |