651 lines
26 KiB
Plaintext
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
|