;; Here's a sample .emacs file that might help you along the way. Just ;; copy this region and paste it into your .emacs file. You may want to ;; change some of the actual values. (defconst my-c-style '((c-tab-always-indent . t) (c-comment-only-line-offset . 4) (c-hanging-braces-alist . ((substatement-open after) (brace-list-open))) (c-hanging-colons-alist . ((member-init-intro before) (inher-intro) (case-label after) (label after) (access-label after))) (c-cleanup-list . (scope-operator empty-defun-braces defun-close-semi)) (c-offsets-alist . ((arglist-close . c-lineup-arglist) (substatement-open . 0) (case-label . 4) (block-open . 0) (knr-argdecl-intro . -))) (c-echo-syntactic-information-p . t) ) "My C Programming Style") ;; Customizations for all of c-mode, c++-mode, and objc-mode (defun my-c-mode-common-hook () ;; add my personal style and set it for the current buffer (c-add-style "PERSONAL" my-c-style t) ;; offset customizations not in my-c-style (c-set-offset 'member-init-intro '++) ;; other customizations (setq tab-width 8 ;; this will make sure spaces are used instead of tabs indent-tabs-mode nil) ;; we like auto-newline and hungry-delete (c-toggle-auto-hungry-state 1) ) (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) (add-hook 'c-mode-hook 'turn-on-font-lock) (global-font-lock-mode 1) (setq font-lock-maximum-decoration t) (require 'w3-auto) (setq auto-mode-alist (cons '("\\.pc$" . c-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist)) (setq interpreter-mode-alist (cons '("python" . python-mode) interpreter-mode-alist)) (autoload 'python-mode "python-mode" "Python editing mode." t) (autoload 'flyspell-mode-on "flyspell" "On-the-fly ispell." t) ;; Hooks to turn on auto-fill and flyspell. (add-hook 'first-change-hook 'turn-on-auto-fill) ;;(defvar have-ispell-3.1 nil "Set to non-nil if you have ispell 3.1") ;;(if have-ispell-3.1 ;; (add-hook 'text-mode-hook 'flyspell-mode)) ;;(defvar flyspell-map (make-sparse-keymap)) ;;(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checking" t) (setq auto-mode-alist (cons '("\\mutt" . flyspell-mode-on) auto-mode-alist)) ;;(setq auto-mode-alist ;; (cons '("\\.txt$" . flyspell-mode) auto-mode-alist)) ;;(setq auto-mode-alist ;; (cons '("\\.html$" . flyspell-mode) auto-mode-alist)) ;;(setq auto-mode-alist ;; (cons '("\\.tex$" . flyspell-mode) auto-mode-alist)) ;;(autoload 'vm "~/vm" "Start VM on your primary inbox." t) ;;(autoload 'vm-visit-folder "~/vm" "Start VM on an arbitrary folder." t) ;;(autoload 'vm-mail "~/vm" "Send a mail message using VM." t) ;;(autoload 'vm-submit-bug-report "~/vm" "Send a bug report about VM." t) ;;(define-key menu-bar-tools-menu [rmail] '("Read Mail" . vm)) ;;(define-key-after menu-bar-tools-menu [smail] '("Send Mail" . vm-mail) 'rmail) ;; THis line causes ghostscript to query which printer to ;; use - which you may not need if, for example, you only ;; have one printer. (setq ps-lpr-switches '("-query")) (setq ps-printer-name t) ;;(setq explicit-shell-file-name "bash.exe") ;; For subprocesses invoked via the shell ;; (e.g., "shell -c command") ;;(setq shell-file-name explicit-shell-file-name) (custom-set-variables ;; custom-set-variables was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. '(add-log-mailing-address nil t) '(c-indent-comments-syntactically-p t) '(case-fold-search t) '(current-language-environment "Latin-1") '(default-input-method "latin-1-prefix") '(global-font-lock-mode t nil (font-lock)) '(latex-run-command "tex" t) '(mail-alias-file nil t) '(mail-archive-file-name nil t) '(mail-complete-style (quote angles) t) '(mail-default-reply-to "you@cs.ucsb.edu" t) '(mail-from-style (quote angles) t) '(mail-header-separator "--text follows this line--" t) '(mail-hist-keep-history t t) '(mail-interactive nil t) '(mail-personal-alias-file "~/.mailrc" t) '(mail-self-blind nil t) '(mail-specify-envelope-from nil t) '(mail-use-rfc822 nil t) '(sendmail-coding-system nil t) '(show-paren-mode t nil (paren)) '(standard-indent 4) '(tab-stop-list (quote (4 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120))) '(text-mode-hook (quote (turn-on-auto-fill text-mode-hook-identify))) '(transient-mark-mode t) '(vm-auto-get-new-mail nil t) '(vm-mail-check-interval nil t) '(vm-menu-hm-no-hidden-dirs t t) '(vm-menu-hm-tree-ls-flags "-aFLR" t) '(vm-move-after-deleting t t) '(vm-netscape-program "opera" t) '(vm-preview-lines nil t) '(w3-default-homepage "http://www.google.com")) (custom-set-faces ;; custom-set-faces was added by Custom -- don't edit or cut/paste it! ;; Your init file should contain only one such instance. ) ;; '(vm-raise-frame-at-startup nil t)) ;; Red Hat Linux default .emacs initialization file ;; Are we running XEmacs or Emacs? ;(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) ;; Set up the keyboard so the delete key on both the regular keyboard ;; and the keypad delete the character under the cursor and to the right ;; under X, instead of the default, backspace behavior. ;(global-set-key [delete] 'delete-char) ;(global-set-key [kp-delete] 'delete-char) ;; Turn on font-lock mode for Emacs ;(cond ((not running-xemacs) ; (global-font-lock-mode t) ;)) ;; Always end a file with a newline (setq require-final-newline t) ;; Stop at the end of the file, not just add lines (setq next-line-add-newlines nil) ;; Enable wheelmouse support by default ;(if (not running-xemacs) ; (require 'mwheel) ; Emacs ; (mwheel-install) ; XEmacs ;) ;;(setq smtpmail-default-smtp-server "localhost") ;;(setq smtpmail-local-domain "cs.ucsb.edu") ;; Please add these lines in your .emacs(_emacs) or use customize. ;; (setq send-mail-function 'smtpmail-send-it) ; if you use `mail' (setq message-send-mail-function 'smtpmail-send-it) ; if you are using Gnus. (setq send-mail-function 'you-send-it) ; if you use `mail' (setq message-send-mail-function 'you-send-it) ; if you are using Gnus. (setq smtpmail-default-smtp-server "127.0.0.1") ;;through ssh (setq smtpmail-debug-info t) ; only to debug problems (setq smtpmail-queue-mail t) ;; To queue mail, set smtpmail-queue-mail to t and use ;; smtpmail-send-queued-mail to send. (fset 'thedate [?\C-u escape ?! ?d ?a ?t ?e ? ?' ?+ ?% ?m ?/ ?% ?d ?/ ?% ?y ?' return right right right right right right right right ?\C-d]) (defun you-single-command (shell_command) (call-process "c:\\programs\\cygwin\\bin\\bash.exe" nil t nil "-c" shell_command)) ;;(concat "\"ls;" "/usr/bin/latex " ;; (buffer-name) "; yap " (buffer-name) "&;\""))) ;;vm (autoload 'vm "vm" "Start VM on your primary inbox." t) ;;(autoload 'vm-other-frame "vm" "Like `vm' but starts in another frame." t) (autoload 'vm-visit-folder "vm" "Start VM on an arbitrary folder." t) (autoload 'vm-visit-virtual-folder "vm" "Visit a VM virtual folder." t) (autoload 'vm-mode "vm" "Run VM major mode on a buffer" t) (autoload 'vm-mail "vm" "Send a mail message using VM." t) (autoload 'vm-submit-bug-report "vm" "Send a bug report about VM." t) (setq vm-move-after-deleting t) (setq vm-folder-directory "~/mail/") (setq vm-primary-inbox "~/mail/INBOX") (setq vm-crash-box "~/mail/INBOX.CRASH") (setq vm-spool-files '( ("INBOX" "imap:127.0.0.1:143:INBOX:login:you:*" "INBOX.CRASH") ("OLD" "imap:127.0.0.1:143:OLD:login:you:*" "OLD.CRASH") ) ) (setq vm-imap-auto-expunge-alist '( ;; expunge immediatly ("imap:127.0.0.1:143:INBOX:login:you:*" . t) ;; leave message on the server ("imap:127.0.0.1:143:OLD:login:you:*" . nil) ) ) (setq vm-pop-auto-expunge-alist '( ;; leave message on the server ) ) (define-key menu-bar-tools-menu [rmail] '("Read Mail" . vm)) (define-key-after menu-bar-tools-menu [smail] '("Send Mail" . vm-mail) 'rmail) (setq vm-subject-ignored-prefix "^\\(re: *\\)+") (setq vm-jump-to-new-messages t) (setq vm-frame-per-completion t) (setq vm-frame-per-composition t) (setq vm-frame-per-edit t) (setq vm-frame-per-folder t) ;;(setq vm-frame-per-help nil) ;;(setq vm-frame-per-summary nil) ;;(setq vm-mutable-frames nil) allow vm to control windows (setq vm-raise-frame-at-startup nil) (setq vm-preview-lines nil) (setq vm-summary-show-threads t) (setq mail-self-blind t) (autoload 'todoo "todoo" "TODO Mode" t) (add-to-list 'auto-mode-alist '("TODO$" . todoo-mode)) (load "planner") (setq mark-diary-entries-in-calendar t) (define-key mode-specific-map [?n] 'planner-goto-today) ;;(defadvice mark-diary-entries (before remind-generate-diary activate) ;; "Generate a diary file from a .reminders file." ;;(with-current-buffer (find-file-noselect diary-file) ;;(erase-buffer) ;;(call-process "pwd" nil t) ;;(call-process "pwd") ;;(save-buffer))) ;;(defun rem () ;; (interactive) (defun planner-goto-schedule () (interactive) (goto-char (point-min)) (unless (re-search-forward "^\\* Schedule\n\n" nil t) (re-search-forward "^\\* Notes") (beginning-of-line) (insert "* Schedule\n\n\n\n") (forward-line -2))) (add-hook 'planner-mode-hook 'you-planner-keys) (defun you-planner-keys () (define-key planner-mode-map [(control ?c) (control ?w)] 'planner-goto-schedule) (define-key planner-mode-map [(control ?c) (control ?f)] 'you-planner-move-unfinished-tasks) ;; (define-key planner-mode-map [(control ?x) (control ?a)] ;; 'you-save-all) ) ;;(eval-after-load "planner" ;; '(progn ;; (define-key planner-mode-map [(control ?c) (control ?w)] ;; 'planner-goto-schedule))) ;;(eval-after-load "planner" ;; '(progn ;; (define-key planner-mode-map [(control ?c) (control ?f)] ;; 'you-planner-move-unfinished-tasks))) ;;(eval-after-load "planner" ;; '(progn ;; (define-key planner-mode-map [(control ?c) (control ?a)] ;; 'you-save-all))) (defun remove-old-sched () ;;(re-search-forward "^\\* Schedule\n\n" nil t) (interactive) (save-excursion (beginning-of-buffer) (re-search-forward "^\\* Schedule\n\n" nil t) (kill-region (point) (re-search-forward "* Notes\n" nil t)) (insert "\n* Notes\n")) ) (defun you-update-schedule () (save-excursion (if font-lock-mode (font-lock-unfontify-region (point-min) (point-max))) ;;remove old sched (remove-old-sched) (planner-goto-schedule) (rem) (if font-lock-mode (font-lock-fontify-region (point-min) (point-max))))) ;;(setq mail-archive-file-name (expand-file-name "SENT")) (setq vm-url-browser "c:\\Program Files\\Opera\\opera.exe") (setq vm-auto-get-new-mail nil) (setq vm-mail-check-interval nil) (setq vm-netscape-program "c:\\Program Files\\Opera\\opera.exe") (setq vm-raise-frame-at-startup nil) (add-hook 'text-mode-hook 'flyspell-mode-on) (add-hook 'html-mode-hook 'flyspell-mode-on) (add-hook 'mail-hook 'flyspell-mode-on) ;;(add-hook 'mail-setup-hook 'flyspell-mode) ;;(add-hook 'vm-reply-mail-hook 'flyspell-mode) (add-hook 'tex-mode-hook 'you-change-title) (add-hook 'tex-mode-hook 'flyspell-mode-on) (add-hook 'emacs-wiki-mode-hook 'flyspell-mode-on) (defun you-change-title-planner () (interactive) (setq frame-title-format "Planner")) (defun you-change-title-mail () (interactive) (setq frame-title-format "Mail")) (defun you-change-title () (interactive) (setq frame-title-format (buffer-name))) (add-hook 'planner-mode-hook 'you-change-title-planner) (add-hook 'mail-setup-hook 'you-change-title-mail) (add-hook 'vm-setup-hook 'you-change-title-mail) (add-hook 'vm-mail-hook 'you-change-title-mail) (require 'bbdb) ;;(bbdb-initialize) ;;(bbdb-initialize 'vm) (bbdb-initialize 'vm 'sendmail) ;;(add-hook 'bbdb-load-hook (function (lambda () (require 'bbdb-print)))) ;;(bbdb-insinuate-vm) ;;(bbdb-insinuate-message) ;;(add-hook 'mail-setup-hook 'bbdb-insinuate-sendmail) ;;(global-set-key [(control ?c) (control ?v)] 'bbdb-complete-name) ;;(defun you-add-bbdb-key () ;; (local-set-key [(control ?c) (control ?v)] 'bbdb-complete-name)) ;;(add-hook 'mail-mode-hook 'you-add-bbdb-key) (defun you-planner-move-unfinished-task () (save-excursion ;;(if (re-search-forward planner-marks-regexp-notdone) ;;need to fix if not found ;(if (re-search-forward "^#\\([A-C]\\)\\([0-9]+\\) _ " nil t) ;;(if (re-search-forward "^#?[A-C][0-9]* _" nil t) (beginning-of-line) ;(let* ((task-info (planner-current-task-info)) ; (task-link (and task-info (planner-task-link task-info)))) ; (if task-info (planner-move-task (planner-today)))) (defun you-planner-move-unfinished-tasks () (interactive) (save-excursion ;;goto last task ;;while go up ;;attempt to move task (goto-char (point-max)) (while (re-search-backward "^#\\([A-C]\\)\\([0-9]+\\) _ " nil t) (beginning-of-line) (let* ((task-info (planner-current-task-info)) (task-link (and task-info (planner-task-link task-info)))) (if task-info (you-planner-move-unfinished-task) ))))) (setq vm-auto-folder-alist '( ("From:" ("info@goldspot.net" . "JUNK")) ("To:" ("undisclosed-recipients" . "JUNK")) ("To:" ("Undisclosed-Recipients" . "JUNK")) ("Subject:" ("Viagra" . "JUNK")) ("Subject:" ("Goldspot" . "JUNK")) )) (setq vm-delete-after-archiving t) (defun my-vm-arrived-messages-hook () (vm-auto-archive-messages) (vm-expunge-folder)) (add-hook 'vm-arrived-messages-hook 'my-vm-arrived-messages-hook) (setq vm-reply-ignored-addresses '("^you@you.edu" "[ \<]you@you.edu" "^you@you.edu" "[ \<]you@you.edu")) (setq vm-delete-after-saving t) ;(require 'vm) (add-hook 'vm-setup-hook '(add-to-list 'vm-mime-type-converter-alist '("text/html" "text/plain" "cat"))) (add-hook 'vm-setup-hook '(add-to-list 'vm-mime-external-content-types-alist '("application/pdf" "acroread"))) (setq vm-reply-subject-prefix "RE:") (setq vm-included-text-prefix ">") (setq vm-print-comand 'ps-print-buffer) (setq vm-print-command-switches nil) (setq vm-included-text-attribution-format ">%F wrote:\n") (defun you-remove-html-crap () (interactive) (save-excursion (beginning-of-line) (perform-replace "<.*?>" "" nil nil nil t nil)) (save-excursion (beginning-of-line) (perform-replace " " "" nil nil nil t nil)) (save-excursion (beginning-of-line) (fill-region (point) (point-max))) ) (defun you-save-all () ;;(save-some-buffers t nil) (interactive) (save-some-buffers t) ) (defun you-kill-all () (interactive) (save-some-buffers) (setq list (buffer-list)) (while list (setq buffer (car list)) (kill-buffer buffer) (setq list (cdr list))) ) (defun you-send-it () (smtpmail-send-it) ) (add-hook 'vm-mail-mode-hook 'you-vm-mail-mode-keys) (defun you-vm-mail-mode-keys () (define-key vm-mail-mode-map [(control ?c) (control ?c)] 'you-send-mail) (define-key vm-mail-mode-map [(control ?c) (control ?q)] 'you-queue-mail) ) (defun you-save-mail-all () (interactive) (vm-expunge-folder) (you-save-all) ) (add-hook 'vm-mode-hook 'you-vm-mode-keys) (defun you-vm-mode-keys () (define-key vm-mode-map "g" 'you-get-new-mail) (define-key vm-mode-map [(control ?x) (control ?a)] 'you-save-mail-all) ) ;;(add-hook 'vm-mode-hook 'you-add-get-mail-key) ;;(defun you-add-get-mail-key () ;; (define-key vm-mode-map "g" 'you-get-new-mail) ;;) ;;(add-hook 'vm-mode-hook 'you-add-save-mail-key) ;;(defun you-add-save-mail-key () ;; (define-key vm-mode-map [(control ?x) (control ?a)] 'you-save-mail-all) ;;) (add-hook 'bbdb-mode-hook 'you-bbdb-mode-keys) (defun you-bbdb-mode-keys () (define-key bbdb-mode-map "g" 'you-get-new-mail) ;; (define-key bbdb-mode-map [(control ?x) (control ?a)] 'you-save-all) ) (defun you-after-mail () (vm) ) (defun you-send-mail () (interactive) (you-save-all) (vm-mail-send-and-exit t) (smtpmail-send-queued-mail) (you-save-all) ) (defun you-get-new-mail () (interactive) (you-save-all) (vm-get-new-mail) (you-save-all) ) (defun you-send-queued-mail () (interactive) (you-save-all) (smtpmail-send-queued-mail) (you-save-all) ) (defun you-queue-mail () (interactive) (vm-mail-send-and-exit t) (you-after-mail) ) (defun you-backup-file () (interactive) ;; (make-directory "backup") (setq orig_filename buffer-file-name) (setq number 1) (setq filename (concat buffer-file-name "." (int-to-string number))) (while (file-exists-p filename) (incf number) (setq filename (concat buffer-file-name "." (int-to-string number)))) (save-excursion (write-file filename) (write-file orig_filename)) ) (cond ((fboundp 'global-font-lock-mode) ;; Turn on font-lock in all modes that support it (global-font-lock-mode t) ;; Maximum colors (setq font-lock-maximum-decoration t))) ;;(add-hook 'comint-output-filter-functions ;; 'shell-strip-ctrl-m nil t) ;;(add-hook 'comint-output-filter-functions ;; 'comint-watch-for-password-prompt nil t) ;;(setq explicit-shell-file-name "bash.exe") ;; For subprocesses invoked via the shell ;; (e.g., "shell -c command") ;;(setq shell-file-name explicit-shell-file-name) ;;(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) (setq shell-file-name "bash") (setq shell-command-switch "-c") (setq explicit-shell-file-name shell-file-name) (setenv "SHELL" shell-file-name) (setq explicit-sh-args '("-l" "-i")) (if (boundp 'w32-quote-process-args) (setq w32-quote-process-args ?\")) ;; Include only for MS Windows. (setq default-process-coding-system '(undecided-dos . undecided-unix)) (require 'u-vm-color) (add-hook 'vm-summary-mode-hook 'u-vm-color-summary-mode) (add-hook 'vm-select-message-hook 'u-vm-color-fontify-buffer) ;; ;; It may be necessary to add the following, which probably comes from ;; a bug in my code... (defadvice vm-decode-mime-message (after u-vm-color activate) (u-vm-color-fontify-buffer-even-more)) ;; M-x customize-group u-vm-color (global-set-key [(control ?x) (control ?a)] 'you-save-all) ;;; Auto-delete spam mail. ;;; Just set up a virtual folder spec for the auto-delete folder, like this: ;;; ;;; Where it says (inbox) below, you should put ("/the/path/to/your/inbox") ;;; Or use backqoute and the value of vm-primary-inbox (1998 June 20 SOM) ;;; ;;; ;;;(defun vm-auto-delete () ;;; "*Mark for deletion any message matched by the ;;;auto-delete virtual folder specification." ;;; (interactive) ;;; (condition-case c ;;; (if (and (boundp 'vm-virtual-folder-alist) ;;; (assoc "auto-delete" vm-virtual-folder-alist)) ;;; (let (n) ;;; (save-window-excursion ;;; (save-excursion ;;; (vm-apply-virtual-folder "auto-delete") ;;; (setq n (length vm-message-pointer)) ;;; (if (> n 0) ;;; (progn ;;; (vm-goto-message 1) ;;; (vm-delete-message n))) ;;; (vm-quit))) ;;; (if (> n 0) ;;; (message "%d messages marked for deletion." n) ;;; (message "No messages marked for deletion.")))) ;;; (error (message "vm-auto-delete error")))) ;;; ;;;(add-hook 'vm-arrived-messages-hook 'vm-auto-delete) (setq load-path (cons "c:\\you\\site-lisp\\always-complete" load-path)) ;;(global-set-key "\M-\r" 'complete) ;;(autoload 'complete "always-complete" "" t) ;(load "completion") ;(initialize-completions) ;(load "always-complete") (setq load-path (cons "c:\\you\\site-lisp\\remem" load-path)) (setq remem-prog-dir "c:\\you\\bin") (setq remem-database-dir "c:\\you\\RA-indexes") (setq remem-scopes-list '(("planner" 6 5 500))) (load "remem.el") (require 'pc-bufsw) (pc-bufsw::bind-keys [C-tab] [C-S-tab]) (setenv "PATH" (concat "c:/cygwin/bin;" (getenv "PATH"))) (setq exec-path (cons "c:/cygwin/bin/" exec-path)) (require 'cygwin-mount) (cygwin-mount-activate) (add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t) (add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt nil t) (setq explicit-shell-file-name "bash.exe") ;; For subprocesses invoked via the shell ;; (e.g., "shell -c command") (setq shell-file-name explicit-shell-file-name) (add-hook 'shell-mode-hook 'n-shell-mode-hook) (defun n-shell-mode-hook () "12Jan2002 - sailor, shell mode customizations." (local-set-key '[up] 'comint-previous-input) (local-set-key '[down] 'comint-next-input) (local-set-key '[(shift tab)] 'comint-next-matching-input-from-input) ) ;;;;;;;;;;;;;;; color settings ;;;;;;;;;;;;;;;;;;;;;; (set-foreground-color "grey100" ) ;;(set-background-color "#000044" ) (set-background-color "black") (set-cursor-color "yellow") (set-border-color "DarkSlateGray" ) (setq default-frame-alist (append default-frame-alist '((foreground-color . "grey100") (background-color . "black") (cursor-color . "yellow") ;(mouse-color . "DarkSlateGray") ))) (set-face-foreground 'font-lock-comment-face "gray") (set-face-foreground 'font-lock-string-face "OrangeRed") ;(set-face-foreground 'font-lock-doc-string-face "gray") (set-face-foreground 'font-lock-function-name-face "green") (set-face-foreground 'font-lock-variable-name-face "cyan") (set-face-foreground 'font-lock-type-face "SandyBrown") (set-face-foreground 'font-lock-keyword-face "Wheat") (set-face-foreground 'font-lock-builtin-face "Wheat") (set-face-foreground 'font-lock-constant-face "yellow") ; "Wheat") (set-face-foreground 'modeline "black") (set-face-background 'modeline "grey100") (set-face-background 'region "blue") (set-face-foreground 'bold "red") (set-face-foreground 'italic "yellow") (set-face-background 'highlight "blue")