Skip to main content
XEmacs init.el

It's been almost eleven years since when I was introduced to GNU EMACS. It came in as a DOS based editor which failed to load files that were over 640k. This was followed by DPMI support which provided flaky support to open files larger than than and unreliable under Windows 3.1. I then migrated to GNU EMACS on win32 and finally settled down with XEmacs on XP.

Over the years, my (X)EMACS config file has and still undergoing changes and here is the latest configuration that I maintain.

Note: I am not a lisp hacker, but have basically accumulated a list of handy configuration options and snippets that were indispensable during the course of my programming career.


;;
;; Shoban's XEmacs init.el
;;

;; ----------------------------------------------------------------------
;; load paths

;(pushnew "~/.xemacs/xemacs-packages/dmacro" load-path :test 'equal)
(pushnew "~/.xemacs/xemacs-packages" load-path :test 'equal)

(setq Info-directory-list
'("c:/Program Files/XEmacs/XEmacs-21.4.13/info/"))

;; ----------------------------------------------------------------------
;; Default frame size

(set-frame-height (selected-frame) 40)
(set-frame-width (selected-frame) 90)
(set-frame-position (selected-frame) 5 5)

;; ----------------------------------------------------------------------
;; remove of the unused toolbar icons

(set-specifier default-toolbar-visible-p nil)
(set-specifier bottom-toolbar-visible-p nil)
(set-specifier left-toolbar-visible-p nil)
(set-specifier right-toolbar-visible-p nil)
(set-specifier top-toolbar-visible-p nil)

;; ----------------------------------------------------------------------
;; Font lock mode

(require 'font-lock)

(set-face-font 'default "Courier New:Regular:10")
(set-face-font 'font-lock-keyword-face "Courier New:Bold:10")
(set-face-font 'font-lock-type-face "Courier New:Bold:10")

;; ----------------------------------------------------------------------
;; Color themes

;(require 'color-theme)
;(color-theme-deep-blue)

;; ----------------------------------------------------------------------
;; Set source code indenting rules

(defun my-c-mode-hook()
(c-set-style "stroustrup")
(c-set-offset 'case-label '+) ; The case labels will be indented
(c-set-offset 'inline-open '0) ; C++ - no indent for access specifiers
(setq indent-tabs-mode nil)
(setq tab-width 4) ; tabs are 4 spaces wide
(setq c-basic-offset 4) ; Indentation set to 4 spaces
(c-toggle-hungry-state t) ; Backspacing deletes all spaces before
(define-key c-mode-base-map "\C-m" 'c-context-line-break)
)

(add-hook 'c-mode-common-hook 'my-c-mode-hook)

;(setq cperl-indent-level 4)

;; ----------------------------------------------------------------------
;; Load VB mode

(autoload 'visual-basic-mode "visual-basic-mode" "Visual Basic mode." t)
(setq auto-mode-alist (append '(("\\.\\(frm\\|bas\\|cls\\|ctl\\)$" .
visual-basic-mode)) auto-mode-alist))
(add-hook 'visual-basic-mode-hook 'turn-on-font-lock)

;(autoload 'vb-mode "vb-mode" "Visual Basic Editing Mode" t)
;(setq auto-mode-alist
; (append '(("\\.\\(cls\\|bas\\|frm\\|ctl\\|vbs\\|mst\\)\\'" . vb-mode))
; auto-mode-alist))
;(add-hook 'vb-mode-hook 'turn-on-font-lock)

;; ----------------------------------------------------------------------
;; C# mode

(autoload 'csharp-mode "csharp-mode" "Major mode for editing C# code." t)
(setq auto-mode-alist
(append '(("\\.cs$" . csharp-mode)) auto-mode-alist))


;; ----------------------------------------------------------------------
;; dmacro

;(require 'dmacro)

;(dmacro-load "~/dmacro/shoban.dm")

;(setq auto-dmacro-alist (cons '("\\.h$" . dot-h) auto-dmacro-alist))
;(setq auto-dmacro-alist (cons '("\\.h[px][px]$" . dot-h) auto-dmacro-alist))
;(setq auto-dmacro-alist (cons '("\\.c$" . masthead) auto-dmacro-alist))
;(setq auto-dmacro-alist (cons '("\\.c[px][px]$" . masthead) auto-dmacro-alist))

;; ----------------------------------------------------------------------
;; EMACS Code browser

;(ecb-activate) ; Comment out this line if you do not need ECB loaded

;; ----------------------------------------------------------------------
;; Abbrevs

(setq abbrev-file-name "~/.xemacs/.abbrevs") ;; definitions from...
(quietly-read-abbrev-file)
(abbrev-mode 1)

;; ----------------------------------------------------------------------
;; Spell check

(setq-default ispell-program-name "e:\\utils\\Aspell\\aspell.exe")

;; ----------------------------------------------------------------------
;; Misc commands

;(clearcase-install)

(line-number-mode 1)

(require 'generic-extras)

;(savehist-load)

(require 'saveplace)
(setq-default save-place t)

(iswitchb-default-keybindings)

(require 'redo)

(require 'func-menu)
(add-hook 'find-file-hooks 'fume-add-menubar-entry)

(paren-set-mode 'paren)

;; ----------------------------------------------------------------------
;; Calendar - week

(require 'calendar)

(defun calendar-week-number (date)
"Return the week number for DATE.
The week starts on MONDAY."
(let* ((year (extract-calendar-year date))
(day-number (calendar-day-number date))
(day-of-week-first-day (calendar-day-of-week (list 1 1 year)))
(adjust))
(when (eq 0 day-of-week-first-day)
(setq day-of-week-first-day 7))
(setq adjust (% (- 9 day-of-week-first-day) 8))
(if (<>

(if (eq (console-type) 'mswindows)
(set-default-file-coding-system (get-coding-system 'undecided-dos))
)

Comments

Popular posts from this blog

Battle of Wesnoth Been on the lookout for a free turn based strategy game and chanced upon the Battle of Wesnoth . Despite it being an open source game (meaning, you get the source), it was incredibly polished akin to any of the other turn based strategy game (Alpha Centauri), be it the background score or the graphics or the tutorials. The game itself is set in a period similar to the D&D or nethack era. For the film buffs, if you have read or seen the Lord of the Rings, you would probably be able to relate to the clans that populate the game world. The game play, as with any turn based strategy game requires background information on each of the units that you own, their strengths and weaknesses and a lot of planning (a kin to chess, but with a lot more parameters) where factors like day - night cycles are taken into account (e.g, humans fight well during the day, but the orcs are better during the night). It is encouraged to keep your older units as they gain experience and beco...
Going forward... Happy Diwali to anyone who has managed to reach this site! With this being a long weekend, by next novel that I recently read was NEXT by Michael Crichton, based on the new advances that are being made in the world of genetic engineering and the implications of their effects in the social world. Good read which changes the perspective of the darker side of generic engineering in the ever changing world.
The Quest The quest for a free UML tool has been going on for the past few years until I chanced upon StarUML . Capable, with support for UML 2.0 constructs except Timing Diagrams, this is a good tool compared to others like ArgoUML . StarUML is developed using Delphi and is COM compliant so that plugins exist to extend the existing framework to support or provide configurability. The base installation supports document generation and well as rudimentary reverse engineering support. I tried reverse engineering a few C# code and only a few classes were imported. This being an open source project, there is no stopping you from acquiring the source and fixing any open issues and submitting a patch. The UI is snappy and unlike other tools that are over 250 MB in size, this is 1/10 in comparison. A great tool for quick modeling.