;; this is a sample ~/.emacs file which you can use ;; as a starting point for customizing emacs ;; to learn more about what's going on here I suggest browsing emacs's ;; help system and to use Google to find emacs documentation ;; tip: use ctrl-h f xxx to find out what function xxx does ;; uncomment (delete ;;) to switch on feature ;; a font entry in .Xdefaults improves startup time considerably! ;; put VM into the Tools menu ;;(define-key global-map [menu-bar tools VM] '("Mail:VM" . vm)) ;; put speedbar into the Tools menu ;; (define-key global-map [menu-bar tools SpeedBar] '("SpeedBar" . speedbar)) ;; file name completion in compile input line ;; (require 'comint) ;; (define-key minibuffer-local-map [tab] 'comint-dynamic-complete) (display-time) (setq line-number-mode t) (setq standard-indent 2) (setq c-basic-offset 2) ;;(setq transient-mark-mode t) (setq text-mode-hook 'turn-on-auto-fill) (setq make-backup-files t) (put 'eval-expression 'disabled nil) ;; switch into special mode depending on filename extension (setq auto-mode-alist (mapcar 'purecopy '(("\\.c$" . c++-mode) ("\\.h$" . c++-mode) ("\\.C$" . c++-mode) ("\\.cs$" . c++-mode) ("\\.java$" . c++-mode) ("\\.cpp$" . c++-mode) ("\\.cc$" . c++-mode) ("\\.mc$" . c++-mode) ("\\.H$" . c++-mode) ("\\.tex$" . tex-mode) ("\\.txi$" . Texinfo-mode) ("\\.e$" . eiffel-mode) ("\\.el$" . emacs-lisp-mode) ("makefile$" . makefile-mode) ("Makefile$" . makefile-mode) ("\\.a$" . c++-mode)))) (require 'font-lock) (defvar cursor-map-2 (make-keymap) "for ESC-[") (fset 'Cursor-Map-2 cursor-map-2) (define-key esc-map "[" 'Cursor-Map-2) (define-key esc-map "[A" 'previous-line) (define-key esc-map "[B" 'next-line) (define-key esc-map "[C" 'forward-char) (define-key esc-map "[D" 'backward-char) (define-key esc-map "[H" 'beginning-of-line) (define-key esc-map "[Y" 'end-of-line) (define-key esc-map "[5^" 'scroll-down) (define-key esc-map "[6^" 'scroll-up) (define-key esc-map "[[A" 'help-for-help) (define-key esc-map "[[B" 'byte-compile-file) (define-key esc-map "[[C" 'isearch-forward) (define-key esc-map "[[D" 'query-replace-regexp) (define-key esc-map "[[E" 'eval-defun) (define-key esc-map "[[F" 'eval-current-buffer) (define-key esc-map "[[G" 'buffer-menu) (define-key esc-map "[[H" 'global-set-key) (define-key esc-map "[[I" 'save-buffer) (define-key esc-map "[[J" 'save-buffers-kill-emacs) (define-key esc-map "[2^" 'set-mark-command) (define-key esc-map "[3^" 'delete-char) ;; shift arrows (define-key function-key-map "\e[E" '[S-up]) (define-key function-key-map "\e[F" '[S-down]) (define-key function-key-map "\e[G" '[S-right]) (define-key function-key-map "\e[H" '[S-left]) ;; control arrows: (define-key function-key-map "\e[I" '[C-up]) (define-key function-key-map "\e[J" '[C-down]) (define-key function-key-map "\e[K" '[C-right]) (define-key function-key-map "\e[L" '[C-left]) ;; shift tab: (define-key function-key-map "\e[T" '[S-tab]) (global-set-key [f12] "\^A\^K\^K" ) ; delete-line (global-set-key [f4] 'advertised-undo) ; Undo ;;(global-set-key [f2] 'yank) ; Paste ;;(global-set-key [f1] 'kill-region) ; Cut (global-set-key "\C-z" nil) (global-set-key "\C-zl" 'goto-line) ; goto-line (global-set-key [(control right)] 'end-of-line) (global-set-key [(control left)] 'beginning-of-line) (global-set-key [(control up)] 'beginning-of-buffer) (global-set-key [(control down)] 'end-of-buffer) (global-set-key [(shift right)] 'forward-word) (global-set-key [(shift left)] 'backward-word) (global-set-key [(shift up)] 'scroll-down) (global-set-key [(shift down)] 'scroll-up) (global-set-key [delete] 'delete-char) (global-set-key [kp-delete] 'delete-char) (global-set-key [backspace] 'delete-backward-char) (global-set-key [(control button1)] 'popup-buffer-menu) (global-set-key [button3] 'kill-region) ;; compile within emacs: ctrl-z c (global-set-key "\C-zc" 'compile) (global-set-key [next] 'next-error) (global-set-key [delete] 'delete-char) (define-key global-map [backspace] 'delete-backward-char) (define-key global-map [(control button1)] 'popup-buffer-menu) (define-key global-map [button3] 'kill-region) (define-key global-map [delete] 'delete-char) (setq delete-key-deletes-forward "true") (setq mail-yank-prefix ">> ") ;; this is the compile command, you can edit it to say "g++ " if you ;; don't want to use make (setq compile-command "make ") (define-key global-map "\C-zc" 'compile) ;; compile (put 'upcase-region 'disabled nil) ;; append emails sent by emacs to this file ;;(setq mail-archive-file-name "/usr/gibbons8/cshome/mburo/.PROCMAIL/cc") ;; c and tex mode (defun my-c-mode-common-hook () (setq c-basic-offset 2) (c-set-offset 'member-init-intro '+) (c-toggle-hungry-state 1) (define-key c-mode-base-map "\C-m" 'newline-and-indent) ;; auto indentation, very handy! ctrl-x t (define-key c++-mode-map "\C-xt" 'c-indent-defun) (define-key c-mode-map "\C-xt" 'c-indent-defun) (define-key java-mode-map "\C-xt" 'c-indent-defun) ;(setq compile-command "make ../ MODE=opt") ) ;; latex bindings (defun my-tex-mode-hook () (setq compile-command "latex main.tex") (global-set-key [f1] "\\bs\\bs\\bs\\no") (global-set-key [f2] "$$ $$") (global-set-key [f3] "\\begin\{itemize\}\n\\item\n\\end\{itemize\}") ) ;; tex (add-hook 'tex-mode-hook 'my-tex-mode-hook) ;; C, C++, Java ... (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) ;; Java (defun my-java-mode-hook () (define-key java-mode-map "\C-zc" 'jde-build) ) (add-hook 'java-mode-hook 'my-java-mode-hook) ;; mail reader ;; (require 'vm) (custom-set-variables '(case-fold-search t) '(current-language-environment "Latin-9") '(default-input-method "latin-9-prefix") '(global-font-lock-mode t nil (font-lock)) '(mouse-wheel-mode t nil (mwheel)) '(scroll-bar-mode (quote right)) '(show-paren-mode t nil (paren)) '(tool-bar-mode nil nil (tool-bar)) '(transient-mark-mode t)) ;; cursor colour (custom-set-faces '(cursor ((t (:background "tomato")))))