Files
2026-07-02 00:40:23 +00:00

651 lines
26 KiB
Plaintext

;; Setup some handy functions
;; for multiple shells
(defun unique-shell ()
(interactive)
(shell)
(rename-uniquely)
)
;; for tab complete in C/C++ code
;(add-hook 'c-mode-common-hook (function (lambda () (local-set-key (kbd "<tab>") 'indent-or-complete) )))
;; Handle OS-specific settings
(if (eq system-type 'windows-nt)
(list ; WINDOWS settings
;; add my Windows elisp area
(add-to-list 'load-path "c:/data/rcfiles-hg/elisp")
;; Cygwin shell
(setq explicit-shell-file-name "C:/cygwin/bin/bash.exe")
;; For subprocesses invoked via the shell (e.g., "shell -c command")
(setq shell-file-name "C:/cygwin/bin/bash.exe")
(setenv "PATH" (concat (getenv "PATH")
";C:/cygwin/bin"
";C:/cygwin/usr/bin"
";C:/cygwin/usr/local/bin"))
; may want to use cygstart instead?
; kill shell-quote-argument: we need a Cygwin-specific version that does
; not quote the ':' in "c:/data/..."
(defalias 'shell-quote-argument (lambda (a) a))
(defun my-shell-setup ()
"For Cygwin bash under Emacs 20"
(setq comint-scroll-show-maximum-output 'this)
(setq comint-completion-addsuffix t)
;; (setq comint-process-echoes t) ;; reported that this is no longer needed
(setq comint-eol-on-send t)
(setq w32-quote-process-args ?\")
(make-variable-buffer-local 'comint-completion-addsuffix))
(setq shell-mode-hook 'my-shell-setup)
; include Cygwin executables in Emacs' repertoire, and turn off 'diff' DOS file warnings
(add-to-list 'exec-path "c:/cygwin/bin")
(setenv "nodosfilewarning" "1")
; setup AUCTeX to use gsview to show typeset results
(eval-after-load "tex"
'(progn
(push (list 'output-pdf "gsview") TeX-view-program-selection)
(push (list "gsview" "gsview32 %o") TeX-view-program-list)))
)
(list ; *NIX settings
;; add my *NIX elisp area
(add-to-list 'load-path "~/rcfiles-hg/elisp")
))
;; Set some default variables for all buffers
;(load-library "other-functions")
;; Set some default variables for all buffers
(setq auto-save-interval 100000)
(setq c-default-mode 'c-mode)
(setq ada-default-mode 'ada-mode)
(setq default-fill-column 70)
(setq search-exit-char ?\^L)
(setq require-final-newline t)
(setq inhibit-startup-message t)
(setq-default wrap-lines t) ;; don't truncate lines, wrap them
;(setq default-truncate-lines t)
(setq-default indent-tabs-mode nil) ;; always use spaces instead of tabs
(setq-default lpr-command "lp") ;; Set default printer stuff
(setq-default print-buffer "lp") ;; Set default printer stuff
(setq-default print-region "lp") ;; Set default printer stuff
(setq-default lpr-switches '("-dsla7")) ;; Set default printer stuff
(setq-default lpr-header-switches '("")) ;; Set default printer stuff
;(put 'eval-expression 'disabled nil) ;; enable the ESC-ESC command
;(setq dired-listing-switches "-alFL") ;; switches to pass to ls from dired
(setq next-line-add-newlines nil) ;; Don't extend file if cursor moves off bottom
(setq next-screen-context-lines 5) ;; number of lines of the previous screen to show on this
(setq compilation-window-height 5) ;; set the size of the compilation window to 5 lines
(setq scroll-step 5) ;; number of lines to scroll screen
(setq require-final-newline t) ;; make sure that all files end with a newline
(setq line-number-mode t)
(setq column-number-mode t)
(transient-mark-mode nil)
(setq ring-bell-function 'ignore) ; turn off the annoying bell sound!
(setq lisp-mode-hook 'emacs-lisp-mode-setup)
(local-set-key "" (quote newline-and-indent))
(global-set-key "\C-x\C-o" 'find-file-at-point)
;(global-set-key "\C-x4\C-g" 'find-file-at-point-other-window)
(global-set-key "\C-xk" 'kill-current-buffer)
(global-set-key "\C-x\C-k" 'bury-buffer)
(global-set-key "\C-x\M-b" 'rename-buffer)
(global-set-key "\C-xy" 'yank-rectangle)
(global-set-key "\C-xw" 'kill-rectangle)
(global-set-key "\C-xg" 'goto-line)
(global-set-key "\C-x!" 'highlight-region)
(global-set-key "\C-x\C-x" 'exchange-point-and-mark-mk)
(global-set-key "\C-z" 'unique-shell)
(global-set-key "\C-x@" 'unhighlight-region)
(global-set-key "\C-xrw" 'copy-to-register)
(global-set-key "\C-xry" 'insert-register)
(global-set-key (quote [27 f2]) 'name-last-kbd-macro)
(global-set-key (quote [f2]) 'call-last-kbd-macro)
(global-set-key (quote [f3]) 'isearch-repeat-forward)
(global-set-key (quote [f4]) 'f4)
(global-set-key (quote [f5]) 'revert-buffer)
(global-set-key (quote [f6]) 'copy-to-register-1)
(global-set-key (quote [f7]) 'yank-from-register-1)
(global-set-key (quote [f8]) 'toggle-truncate-lines)
(global-set-key (quote [f9]) 'call-last-kbd-macro)
(global-set-key (quote [f10]) 'f10)
(global-set-key (quote [f11]) 'sage-send-doctest-line-and-forward)
(global-set-key (quote [f12]) 'sage-send-region)
(global-set-key (quote [delete]) 'delete-char)
;(global-set-key (quote [delete]) (quote backward-delete-char-untabify))
;(global-set-key (quote [backspace]) 'backward-delete-char)
(global-set-key "\C-x\C-l" 'font-lock-fontify-buffer)
(global-set-key "\C-x\C-v" (require 'vhdl-mode))
(global-set-key "\C-c\C-r" 'vhdl-comment-uncomment-region)
(global-set-key (quote [(meta backspace)]) 'backward-kill-word)
;(global-set-key "\C-c]" 'reftex-citation);RWH:: overridden by LaTeX mode
(load-library "dired")
(load-library "man")
(defun text-mode-tabs ()
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
)
(defun append-mode-hook (hook-name new-defun)
(cond
((not (boundp hook-name))
(set hook-name (list new-defun)))
((listp (symbol-value hook-name))
(set hook-name (append (symbol-value hook-name) (list new-defun))))
(t
(set hook-name (list (symbol-value hook-name) new-defun))
)
)
)
;(append-mode-hook 'text-mode-hook 'turn-on-auto-fill)
(setq default-major-mode 'indented-text-mode)
(append-mode-hook 'text-mode-hook 'text-mode-tabs)
;; RWH misc macros
; copy to/yank from register 1, mostly copied from
; http://xahlee.org/emacs/emacs_esoteric.html
(defun copy-to-register-1 (p1 p2)
"Copy selected text to register named ``1''."
(interactive "r")
(copy-to-register ?1 p1 p2)
(setq deactivate-mark t)
)
(defun yank-from-register-1 ()
"Yank text from register named ``1''."
(interactive)
(insert-register ?1)
)
;;; Enhance the operation of incremental searching.
;;; -----------------------------------------------
;;; The following lines force emacs incremental searches to pop up a small
;;; window when doing incremental searches. Under most circumstances this
;;; is desireable because it reduces the length of screen refreshes during
;;; incremental searches.
(setq search-slow-speed 38400) ; essentially always
(setq search-slow-window-lines 10)
;;; put time status in mode line
;;;--------------------------------------
(display-time)
(setq display-time-day-and-date t) ;; print the date and time, not just the time
; - - - - - {Dis,En}able Functions
(put 'eval-expression 'disabled nil) ; for those that lisp
(put 'narrow-to-region 'disabled nil) ; if you understand narrowing
(setq remembering-keystrokes nil) ; for remember-toggle function
;(substitute-key-definition 'next-line 'next-line-KD global-map)
(substitute-key-definition 'kill-line 'kill-line-KD global-map)
(defun kill-line-KD (lines)
"Same as kill-line except kills whole line if at beginning of line."
(interactive "p") (kill-line (if (and (not (bolp)) (= lines 1)) nil lines)))
(defun next-line-KD (lines)
"Same as next-line except does not create new lines at end-of-buffer."
(interactive "p")
(next-line (- lines (save-excursion (forward-line lines))))
(if (eobp) (ding))
)
(defun remember-toggle ()
"Start/Stop remembering keystrokes for kbd macro named 'one-key-bd-macro'."
(interactive)
(setq remembering-keystrokes (not remembering-keystrokes))
(if remembering-keystrokes (start-kbd-macro nil)
(end-kbd-macro nil)
(name-last-kbd-macro 'one-key-bd-macro))
)
;; (setq vhdl-font-lock-highlight-level 1) ;; (1 or 2 or 3)
;; (setq vhdl-font-lock-highlight-level 3)
;;;; Web-related modes (PHP, HTML, JavaScript, etc.)
;;(require 'web-mode)
;;(add-to-list 'auto-mode-alist '("\\.php\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
;;(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
;;;
;;; Visual Basic mode (incl. SysView)
;;;
(autoload 'visual-basic-mode "visual-basic-mode" "Visual Basic mode." t)
(setq auto-mode-alist (append '(("\\.\\(frm\\|bas\\|cls\\|svi\\|svs\\)$" .
visual-basic-mode)) auto-mode-alist))
; add this to your .emacs file if you would like to be able to switch from DOS
; to UNIX or back for any file
;(require 'eol-conversion)
;
;;RWH: (13 Sep 2010) use M-x set-buffer-file-coding-system or (C-x RET f) and
;;specify "unix", "dos" or "mac".
;;;
;;; C-mode and relatives
;;;
(setq comment-empty-lines t)
;;;
;;; LaTeX mode (AUCTeX, preview-latex, and reftex)
;;;
; try to load tex-site (AUCTeX top-level load)
(when (not (featurep 'tex-site))
(load "tex-site" t))
; what to do when tex-site (i.e. AUCTeX) is available
(when (featurep 'tex-site)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; RefTeX hook into AUCTeX LaTeX
(setq reftex-plug-into-AUCTeX t)
(setq TeX-PDF-mode 1) ;turn on PDF mode.
;(when (eq system-type 'windows-nt);(string= OS "WIN")
; ;(setq 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$" "." "gsview32 %o") ("^html?$" "." "netscape %o"))))
; (push (list 'output-pdf "gsview") TeX-view-program-selection)
; (push (list "gsview" "gsview32 %o") TeX-view-program-list)
)
; X-symbol (optional)
;(defvar x-symbol-root-directory (expand-file-name "/home/ryan/rcfiles/elisp/x-symbol"))
;(defvar x-symbol-lisp-directory
; (expand-file-name "lisp/x-symbol" x-symbol-root-directory))
;(setq load-path (cons x-symbol-lisp-directory load-path))
;(setq x-symbol-data-directory
; (expand-file-name "etc/x-symbol" x-symbol-root-directory))
;(load (expand-file-name "auto-autoloads" x-symbol-lisp-directory))
;(or (fboundp 'custom-add-loads)
; (defun custom-add-loads (symbol list)
; (dolist (load list) (custom-add-load symbol load))))
;(load (expand-file-name "custom-load" x-symbol-lisp-directory))
;(x-symbol-initialize)
;RWH:: turned off because my plus/minus symbols disappeared from my TeX-ified document.
;;;
;;; Ruby mode
;;;
(autoload 'ruby-mode "ruby-mode" "Ruby editing mode." t)
;error? (autoload 'ruby-electric "ruby-electric" "Ruby editing helper minor mode." t)
(autoload 'ruby-electric "ruby-electric" "Ruby editing helper minor mode." t)
;(require 'ruby-electric)
;(autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") ;broken
;(autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") ;broken
;(autoload 'rubydb "rubydb3x" "Ruby debugger" t) ;broken
;(set-default 'auto-mode-alist (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
;(set-default 'auto-mode-alist (append '(("[Rr]akefile" . ruby-mode)) auto-mode-alist))
(add-to-list 'auto-mode-alist '("\\.\\(rb\\|tt\\|treetop\\)$" . ruby-mode))
(add-to-list 'auto-mode-alist '("^[Rr]akefile$" . ruby-mode))
(add-to-list 'interpreter-mode-alist '("ruby" . ruby-mode))
;(add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))
;error? (add-to-list 'ruby-mode-hook 'turn-on-font-lock)
(defun ruby-eval-buffer () (interactive)
"Evaluate the buffer with ruby."
(shell-command-on-region (point-min) (point-max) "ruby"))
;;PRE-1.8.5;;(defun ruby-xmp-region (reg-start reg-end)
;;PRE-1.8.5;; "Pipe the region through Ruby's xmp utility and replace
;;PRE-1.8.5;; the region with the result."
;;PRE-1.8.5;; (interactive "r")
;;PRE-1.8.5;; (shell-command-on-region reg-start reg-end
;;PRE-1.8.5;; "ruby -r xmp -n -e 'xmp($_, \"%l\t\t# %r\n\")'" t))
;;PRE-1.8.5;;(defun ruby-visit-source ()
;;PRE-1.8.5;; "If the current line contains text like '../src/program.rb:34', visit
;;PRE-1.8.5;;that file in the other window and position point on that line."
;;PRE-1.8.5;; (interactive)
;;PRE-1.8.5;; (let* ((start-boundary (save-excursion (beginning-of-line) (point)))
;;PRE-1.8.5;; (regexp (concat "\\([ \t\n\r\"'([<{]\\|^\\)" ; non file chars or
;;PRE-1.8.5;; ; effective
;;PRE-1.8.5;; ; beginning of file
;;PRE-1.8.5;; "\\(.+\\.rb\\):\\([0-9]+\\)")) ; file.rb:NNN
;;PRE-1.8.5;; (matchp (save-excursion
;;PRE-1.8.5;; (end-of-line)
;;PRE-1.8.5;; ;; if two matches on line, the second is most likely
;;PRE-1.8.5;; ;; to be useful, so search backward.
;;PRE-1.8.5;; (re-search-backward regexp start-boundary t))))
;;PRE-1.8.5;; (cond (matchp
;;PRE-1.8.5;; (let ((file (buffer-substring (match-beginning 2)
;;PRE-1.8.5;; (match-end 2)))
;;PRE-1.8.5;; (line (buffer-substring (match-beginning 3)
;;PRE-1.8.5;; (match-end 3))))
;;PRE-1.8.5;; ; Windows: Find-file doesn't seem to work with Cygwin
;;PRE-1.8.5;; ; //<drive>/ format or the odd /cygdrive/<drive>/ format
;;PRE-1.8.5;; (if (or (string-match "//\\(.\\)\\(.*\\)" file)
;;PRE-1.8.5;; (string-match "/cygdrive/\\(.\\)\\(.*\\)" file))
;;PRE-1.8.5;; (setq file
;;PRE-1.8.5;; (concat (substring file
;;PRE-1.8.5;; (match-beginning 1)
;;PRE-1.8.5;; (match-end 1))
;;PRE-1.8.5;; ":"
;;PRE-1.8.5;; (substring file
;;PRE-1.8.5;; (match-beginning 2)
;;PRE-1.8.5;; (match-end 2)))))
;;PRE-1.8.5;;
;;PRE-1.8.5;; (find-file-other-window file)
;;PRE-1.8.5;; (goto-line (string-to-int line))))
;;PRE-1.8.5;; (t
;;PRE-1.8.5;; (error "No ruby location on line.")))))
;;PRE-1.8.5;;(defun ruby-send-block-or-line ()
;;PRE-1.8.5;; (save-excursion
;;PRE-1.8.5;; (if (re-search-backward "[\n\t ]\\(.*\\)[\n\t ]" nil t)
;;PRE-1.8.5;; (let ((foo (match-string 0)))
;;PRE-1.8.5;; (set-text-properties 0 (length foo) nil foo)
;;PRE-1.8.5;; (if (string= foo "end")
;;PRE-1.8.5;; (begin
;;PRE-1.8.5;; (previous-line -1)
;;PRE-1.8.5;; (ruby-send-definition))
;;PRE-1.8.5;; (ruby-send-region (line-beginning-position) (line-end-position)))))))
;;;
;;; end Ruby mode
;;;
;;;
;;; Python mode
;;;
;(autoload 'python "python-21" "Python Mode." t)
;(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
;(add-to-list 'interpreter-mode-alist '("python" . python))
;sage:(add-to-list 'load-path (expand-file-name "/home/ryan/sage/data/emacs"))
;sage:(require 'sage "sage")
;sage:(setq sage-command "/home/ryan/sage/sage")
;sage:(when (not (featurep 'sage-mode)) ; if we don't have sage-mode available
;sage: (add-to-list 'auto-mode-alist '("\\.\\(sage\\|pyx\\|spyx\\|pxd\\|pxi\\)$"
;sage: . python-mode)))
;; If you want sage-view to typeset all your output and have plot()
;; commands inline, uncomment the following line and configure sage-view:
;; (require 'sage-view "sage-view")
;; (add-hook 'sage-startup-hook 'sage-view)
;; You can use commands like
;; (add-hook 'sage-startup-hook 'sage-view
;; 'sage-view-disable-inline-output 'sage-view-disable-inline-plots)
;; to have some combination of features. In future, the customize interface
;; will make this simpler... hint, hint!
;;;
;;; Mathematica mode
;;;
(autoload 'mathematica-mode "mathematica" "Mathematica package editing mode." t)
(add-to-list 'auto-mode-alist '("\\.nb$" . mathematica-mode))
; Note: Don't add Mathematica package files, *.m to this list because I am much
; more likely to see/use Matlab files, which use the same extension.
;;;
;;; VHDL mode
;;;
(autoload 'vhdl-mode "vhdl-mode" "VHDL Editing Mode" t)
;(setq LaTeX-command "latex")
;(setq LaTeX-command "pdflatex")
;(setq latex-run-command "pdflatex")
;(setq auto-mode-alist (append '(("\\.vhdl?$" . vhdl-mode)) auto-mode-alist))
(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-amsmath-label "")
'(LaTeX-command "latex")
'(LaTeX-eqnarray-label "eqn:")
'(LaTeX-equation-label "eqn:")
'(LaTeX-label-alist
'(("figure" . LaTeX-figure-label) ("table" . LaTeX-table-label)
("figure*" . LaTeX-figure-label) ("table*" . LaTeX-table-label)
("equation" . LaTeX-equation-label) ("eqnarray" . LaTeX-eqnarray-label)))
'(TeX-master nil t)
'(TeX-view-style
'(("." "kpdf %d")
("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "%(o?)xdvi %dS -paper a4 %d")
("^a5\\(?:comb\\|paper\\)$" "%(o?)xdvi %dS -paper a5 %d")
("^b5paper$" "%(o?)xdvi %dS -paper b5 %d")
("^letterpaper$" "%(o?)xdvi %dS -paper us %d")
("^legalpaper$" "%(o?)xdvi %dS -paper legal %d")
("^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d")
("^landscape$" "%(o?)xdvi %dS -paper a4r -s 0 %d")
("." "%(o?)xdvi %dS %d")))
'(c-basic-offset 2)
'(fill-column 79)
'(global-auto-revert-mode t nil (autorevert))
'(inferior-octave-startup-args nil)
'(make-backup-files nil)
'(mediawiki-site-alist
'(("Homestead" "http://www.hintonclan.org/homestead2/index.php/" "Ryan" "" "")))
'(mouse-buffer-menu-mode-mult 0)
'(package-selected-packages
'(auctex dockerfile-mode haml-mode inf-ruby markdown-mode typescript-mode
yaml-mode))
'(reftex-default-label-alist-entries
'(AMSTeX amsmath endnotes fancybox floatfig longtable picinpar rotating sidecap
subfigure supertab wrapfig LaTeX))
'(reftex-plug-into-AUCTeX t t)
'(safe-local-variable-values '((TeX-master . t)))
'(tex-default-mode 'latex-mode)
'(tex-start-options-string "--clean --pdf" t)
'(vhdl-actual-port-name '(".*" . "\\&"))
'(vhdl-auto-align t)
'(vhdl-basic-offset 2)
'(vhdl-compiler "ModelSim")
'(vhdl-compiler-alist
'(("Cadence" "cv -file" "" "" "./"
("duluth: \\*E,[0-9]+ (\\(.+\\),\\([0-9]+\\)):" 1 2) ("" 0))
("Ikos" "analyze" "" "" "./" ("E L\\([0-9]+\\)/C[0-9]+:" 0 1)
("^analyze +\\(.+ +\\)*\\(.+\\)$" 2))
("ModelSim" "vcom" "" "vmake > Makefile" "./"
("\\(ERROR\\|WARNING\\)[^:]*: \\(.+\\)(\\([0-9]+\\)):" 2 3) ("" 0))
("QuickHDL" "qvhcom" "" "qhmake >! Makefile" "./"
("\\(ERROR\\|WARNING\\)[^:]*: \\(.+\\)(\\([0-9]+\\)):" 2 3) ("" 0))
("Synopsys" "vhdlan" "" "" "./"
("\\*\\*Error: vhdlan,[0-9]+ \\(.+\\)(\\([0-9]+\\)):" 1 2) ("" 0))
("Vantage" "analyze -libfile vsslib.ini -src" "" "" "./"
("\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" 0 1)
("^ *Compiling \"\\(.+\\)\" " 1))
("Viewlogic" "analyze -libfile vsslib.ini -src" "" "" "./"
("\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" 0 1)
("^ *Compiling \"\\(.+\\)\" " 1))))
'(vhdl-compiler-options "-explicit -2002 -work ../msim/work")
'(vhdl-date-format "%m/%d/%Y")
'(vhdl-electric-mode t)
'(vhdl-end-comment-column 79)
'(vhdl-highlight-keywords t)
'(vhdl-highlight-signals t)
'(vhdl-include-port-comments nil)
'(vhdl-prompt-for-comments nil)
'(vhdl-reset-active-high t)
'(vhdl-reset-kind 'sync)
'(vhdl-self-insert-comments nil)
'(vhdl-standard '(8 (math)))
'(vhdl-stutter-mode nil)
'(vhdl-underscore-is-part-of-word t)
'(vhdl-upper-case-attributes nil)
'(vhdl-upper-case-constants t)
'(vhdl-upper-case-enum-values t)
'(vhdl-upper-case-keywords nil)
'(vhdl-upper-case-types nil)
'(vhdl-use-default-colors t))
;;
;; Fonts and appearance
;;
(show-paren-mode 1)
(setq show-paren-style 'parenthesis)
(unless (equal window-system nil)
(set-face-foreground 'default "ivory");"white");"lightyellow1")
(set-face-background 'default "black");"gray10");"midnight blue");
(set-face-background 'show-paren-match "blue");"gray10");"midnight blue");
;(set-face-foreground 'font-lock-comment-face "red")
(set-cursor-color "green")
)
; remove menubar, toolbar and scrollbar
(menu-bar-mode -1)
(when (fboundp 'tool-bar-mode)
(tool-bar-mode -1))
(when (fboundp 'scroll-bar-mode)
(scroll-bar-mode -1))
; C-x C-e at the end of the line to turn these back on if wanted
;(menu-bar-mode 1)
;(tool-bar-mode 1)
;(scroll-bar-mode -1)
;;
;; Octave mode
;;
(autoload 'octave-mode "octave-mod" nil t)
;RWH:: Matlab mode below is much nicer;(setq auto-mode-alist
;RWH:: Matlab mode below is much nicer; (cons '("\\.m$" . octave-mode) auto-mode-alist))
(add-hook 'octave-mode-hook
(lambda ()
(abbrev-mode 1)
;(auto-fill-mode 1)
(font-lock-mode 1)))
(add-hook 'inferior-octave-mode-hook
(lambda ()
(turn-on-font-lock)
(define-key inferior-octave-mode-map [up]
'comint-previous-input)
(define-key inferior-octave-mode-map [down]
'comint-next-input)))
(autoload 'run-octave "octave-inf" nil t)
;;
;; Metapost Mode
;;
(defun metapost-compile-buffer ()
"Compile current buffer with Metapost."
(interactive)
;Notes:
; - We should have a "save buffer?" dialog if the current buffer is modified.
; - It would be nice to clear the compile buffer before a recompile.
(setq curbuf-fname (shell-quote-argument buffer-file-name))
(setq mpbuf-name (concat "*Metapost-" curbuf-fname "*"))
(save-excursion
(set-buffer (get-buffer-create mpbuf-name))
(erase-buffer))
(if (= 0 (call-process "mpost" nil mpbuf-name nil curbuf-fname))
(message (concat "Metapost compiled " curbuf-fname " successfully."))
(message (concat "Metapost compile of " curbuf-fname " FAILED.")))
)
(add-hook 'metapost-mode-hook
(lambda ()
(define-key meta-mode-map "\C-c\C-c" 'metapost-compile-buffer)))
;;
;; MediaWiki mode
;;
;(load "mediawiki")
;RWH: takes a long time to load, and doesn't work.
;;
;; Matlab Mode
;;
;; Edit the path in the following line to reflect the
;; actual location of the MATLAB root directory on your system.
;; Edit the path in the following line to reflect the
;; ;; actual location of the MATLAB root directory on your system.
;RWH:: old Windows setting;(add-to-list 'load-path "c:\\MATLAB6p5\\java\\extern\\EmacsLink\\lisp")
;RWH:: old Windows setting;(autoload 'matlab-eei-connect "matlab-eei" "Connects Emacs to MATLAB's external editor interface.")
(autoload 'matlab-mode "matlab" "Enter MATLAB mode." t)
(setq auto-mode-alist (cons '("\\.m\\'" . matlab-mode) auto-mode-alist))
(autoload 'matlab-shell "matlab" "Interactive MATLAB mode." t)
;; User Level customizations (You need not use them all):
(setq matlab-indent-function nil) ; if you want function bodies indented
(setq matlab-verify-on-save-flag nil) ; turn off auto-verify on save
(defun my-matlab-mode-hook ()
(setq fill-column 79) ; where auto-fill should wrap
(auto-fill-mode 0)) ; turn off annoying auto-fill-mode
(add-hook 'matlab-mode-hook 'my-matlab-mode-hook)
(defun my-matlab-shell-mode-hook ()
'())
(add-hook 'matlab-shell-mode-hook 'my-matlab-shell-mode-hook)
(setq matlab-shell-command-switches '("-nojvm")) ; turn off Matlab desktop
; Please read the mode help for matlab-mode for additional
; configuration options.
; Syntax highlighting:
; To get font-lock try adding this for older emacsen:
; (font-lock-mode 1)
; Or for newer versions of Emacs:
(global-font-lock-mode t)
; To get hilit19 support try adding:
; (matlab-mode-hilit)
;;
;; end of Matlab Mode customizations
;;
(setq mh-yank-hooks 'sc-cite-original)
(setq sc-load-hook 'sc-setup)
(put 'upcase-region 'disabled nil)
(put 'downcase-region 'disabled nil)
;; Setup persistent Emacs sessions (start from where I left off)
;(desktop-load-default)
;(desktop-read)
(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.
)
;;;
; Voodoo to get around " Wrong type argument: frame-live-p, #<dead frame ...>
(setq menu-updating-frame nil)
(add-hook 'before-save-hook 'delete-trailing-whitespace)
; 5 space indent for assembly
'(asm-basic-offset 5)
; ruby mode insert debug
(global-set-key (kbd "C-c d")
(lambda ()
(interactive)
(let ((indentation (current-indentation))) ; Get current line's indentation
(end-of-line)
(newline) ; Insert a new line
(indent-to indentation) ; Match the indentation
(insert "require 'byebug'; debugger")))) ; Insert the string