;; emacs - GNU Emacs initialization file ;; Copyright (C) 2005 Ismael Valladolid Torres ;; This file is not part of GNU Emacs. ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License ;; as published by the Free Software Foundation; either version 2 ;; of the License, or (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; if not, write to the Free Software ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ;; 02110-1301, USA. ;; See the file COPYING for details. ;; Search for local elisp libraries to load (setq elisp (expand-file-name "~/.elisp")) (when (file-directory-p elisp) (add-to-list 'load-path elisp)) ;; A different default frame font on NT and on X (defvar default-frame-font) ;; Eval the command below to get a list of available fonts ;; (prin1-to-string (x-list-fonts "*")) ;; Stuff to be run only on X (cond ((eq window-system 'x) (if (file-directory-p "/usr/share/fonts/X11/proggy") (setq default-frame-font "-windows-proggycleansz-medium-r-normal--13-80-96-96-c-70-iso8859-1") (setq default-frame-font "fixed")) ;; Enable clipboard only if running Gnome (when (getenv "GNOME_DESKTOP_SESSION_ID") (setq x-select-enable-clipboard 't)) (set-scroll-bar-mode 'right)) ;; Stuff to be run only on NT ((eq window-system 'w32) (setq default-frame-font "-raster-ProggyCleanSZ-normal-r-normal-normal-10-75-96-96-c-70-iso8859-1") ;; Enable printing through Windows and/or the web browser (when (and (locate-library "htmlize") (locate-library "w32-winprint")) (load-library "htmlize") (load-library "w32-winprint")) ;; Cygwin related stuff (when (file-directory-p "C:/cygwin/bin") ;; Make NT Emacs use Cygwin bash, copied verbatim from Cygwin FAQ ;; at http://www.cygwin.com/faq/ ;; This assumes that Cygwin is installed in C:\cygwin (the ;; default) and that C:\cygwin\bin is not already in your ;; Windows Path (it generally should not be). ;; (setq exec-path (cons "C:/cygwin/bin" exec-path)) (setenv "PATH" (concat "C:\\cygwin\\bin;" (getenv "PATH"))) ;; ;; NT-emacs assumes a Windows command shell, which you change ;; here. ;; (setq process-coding-system-alist '(("bash" . undecided-unix))) (setq shell-file-name "bash") (setenv "SHELL" shell-file-name) (setq explicit-shell-file-name shell-file-name) ;; ;; This removes unsightly ^M characters that would otherwise ;; appear in the output of java applications. ;; (add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m) ;; End of verbatim copied code ;; Make NT Emacs understand Cygwin paths (when (require 'cygwin-mount nil t) (cygwin-mount-activate)) ;; Make Tramp work with Cygwin's ssh (when (require 'tramp nil t) (setq tramp-default-method "sshx")) ;; Some email niceties that need to be installed manually when ;; running mutt on Cygwin (when (file-executable-p "C:/cygwin/bin/mutt.exe") (when (require 'post nil t) (setq auto-mode-alist (cons '("/tmp/mutt.*$" . post-mode) auto-mode-alist))) (require 'muttrc nil t))) ;; ;; Not needed when running gnuclientw.exe with the -s option?? ;; (when (and (require 'gnuserv nil t) (executable-find "gnuserv")) ;; (gnuserv-start)) )) ;; Stuff to be run when displaying through any window system (when window-system ;; Don't iconify Emacs by mistake (global-unset-key "\C-z") (tool-bar-mode 0) ;; Default frame colors and font (setq default-frame-alist (list (cons 'font default-frame-font) (cons 'background-color "midnight blue") (cons 'cursor-color "gainsboro") (cons 'foreground-color "gray80"))) (setq initial-frame-alist default-frame-alist) ;; Enable mouse wheel when available (when (require 'mwheel nil t) (mwheel-install))) ;; Personal keyboard macros (global-set-key "\C-ca" 'mark-whole-buffer) (global-set-key "\C-cc" 'comment-region) (global-set-key "\C-cg" 'goto-line) (global-set-key "\C-cs" 'sort-lines) (global-set-key "\C-cu" 'uncomment-region) ;; Settings common to all modes (auto-compression-mode 't) (column-number-mode 't) (global-font-lock-mode 't) (put 'overwrite-mode 'disabled t) (setq debug-on-error 't) (setq inhibit-default-init 't) (setq require-final-newline 't) (setq transient-mark-mode 't) ;; Display buffer file name in the frame title (setq frame-title-format '(buffer-file-name "%f" ("%b"))) ;; (setq frame-title-format "%b") ;; Backup and version control (setq backup-by-copying t) (setq backup-directory-alist '(("." . "~/.saves"))) (setq delete-old-versions t) (setq kept-new-versions 6) (setq kept-old-versions 2) (setq version-control t) ;; Settings for highlight changes mode (global-highlight-changes "passive") (global-set-key (kbd "\C-ch") 'highlight-changes-mode) (custom-set-faces '(highlight-changes-face ((t (:foreground "white"))))) ;; Binary files to be edited in hex dump format (add-to-list 'auto-mode-alist '("\\.bin\\'" . hexl-mode)) (add-to-list 'auto-mode-alist '("\\.cap\\'" . hexl-mode)) (add-to-list 'auto-mode-alist '("\\.ijc\\'" . hexl-mode)) ;; ;; Turn on auto fill for text files ;; (add-hook 'text-mode-hook 'turn-on-auto-fill) (add-to-list 'auto-mode-alist '("\\.txt\\'" . text-mode)) ;; Select unicode when editing these files (add-to-list 'file-coding-system-alist '("\\.\\(ht\\|x\\)ml\\'" . utf-8)) ;; Enable my markup language modes (when (locate-library "my-html-mode") (load-library "my-html-mode")) (when (locate-library "my-xml-mode") (load-library "my-xml-mode")) ;; Enable some customized major modes (require 'a-mode nil t) (require 'pcom-mode nil t) (require 'pcom-log-mode nil t) ;; Find some default files (setq today (format-time-string "%Y%m%d")) (when (file-directory-p (expand-file-name "~/doc/log")) (find-file (concat (expand-file-name "~/doc/log/") today ".txt"))) (find-file (concat temporary-file-directory "blog" today ".html")) ;; Local Variables: ;; mode: lisp ;; End: