From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: William M. Grove Newsgroups: gmane.emacs.help Subject: how to click on file in file manager and have gnuclientw open it up Date: Thu, 1 Mar 2007 19:10:14 -0600 Organization: University of Minnesota Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1172799711 14732 80.91.229.12 (2 Mar 2007 01:41:51 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 2 Mar 2007 01:41:51 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Mar 02 02:41:43 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HMwm4-0005eM-6W for geh-help-gnu-emacs@m.gmane.org; Fri, 02 Mar 2007 02:41:43 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HMwm0-0000em-LT for geh-help-gnu-emacs@m.gmane.org; Thu, 01 Mar 2007 20:41:28 -0500 Original-Path: shelby.stanford.edu!headwall.stanford.edu!newshub.stanford.edu!newsfeed.berkeley.edu!ucberkeley!feed.news.qwest.net!mpls-nntp-01.inet.qwest.net!lenny.tc.umn.edu!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 812 Original-X-Trace: lenny.tc.umn.edu 1172797814 8409 160.94.188.6 (2 Mar 2007 01:10:14 GMT) Original-X-Complaints-To: usenet@lenny.tc.umn.edu User-Agent: MicroPlanet-Gravity/2.60.2060 Original-Xref: shelby.stanford.edu gnu.emacs.help:145977 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:41581 Archived-At: I use Explorer and other file manager programs (Directory Opus, Powerdesk) to browse directory trees in WinXP. I have associated certain file types (e.g., *.r files) with gnuclientw.exe in Windows. When I click on an *.r file, gnuclientw starts up and opens a window, but the contents of the window are blank (or they show the last file I edited in emacs, if I didn't close it out before exiting emacs)---emacs doesn't show my the *.r file I clicked on, the way other editing programs for Windows will do if they are associated with that file type. How can I fix this? It's tedious to have to start up gnuclientw.exe (or runemacs.exe), then use File | Open | etc. to browse down through the directory tree to the file's location and open it, or even just do Ctrl- f and type in the whole path to visit the file in question. Here is my .emacs file, which tries to start gnuserv.exe up so gnuclientw.exe and it are in client-server relationship. Alas, the arrangement isn't working---gnuserv isn't showing up in Task Manager. I am guessing this problem has something to do with my "file clicked on doesn't show up in emacs window" problem. ****************** start of .emacs file ******************** ;;File: GROVE-HOME//~/.emacs ;;Author: William M. Grove ;;Email: grove001@umn.edu ;;last mod.: 04.06.2005 20:59 (setq debug-on-error t) ; this way no mystery derailments ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; S T A R T U P ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Don't show splash screen (setq inhibit-startup-message t) (message "Loading .emacs") ;; Hundreds of times the default value. This significantly speeds ;; up startup and operations for my computer without crashes (setq gc-cons-threshold 50000000) ;; set up minibuffer size & location (setq initial-frame-alist '((minibuffer . t) (name . "William M. Grove") (width . 100) (height . 35) (left . 5) (top . 5))) (setq default-frame-alist '((minibuffer . t) (menu-bar-lines . 1) (width. 75) (height . 23))) ;; Set titles for main frame and icon (%f == file name, ;; %b == buffer name) (setq-default frame-title-format (list "Emacs: %f")) (setq-default icon-title-format "Emacs - %b") ;; location of initial frame (set-frame-position (selected-frame) 0 0) ;; size of initial frame (if (window-at 0 0) (let ((init-frame (window-frame (window-at 0 0)))) (set-frame-height init-frame 74) (set-frame-width init-frame 180) ) ) ;; Make all "yes or no" prompts show "y or n" instead (fset 'yes-or-no-p 'y-or-n-p) (setq my-author-name (getenv "USER")) (setq user-full-name (getenv "USER")) (setq default-directory (getenv "HOME")) ;; Start off in user's home directory (cd (getenv "HOME")) ;; Set my email address for whatever purpose (setq user-mail-address "grove001@umn.edu") ;; add signature automagically (setq mail-signature t) ;; Contents of mode line (line-number-mode 1) (setq column-number-mode t) ;; show current function (which-func-mode t) ;;; Modeline stuff (setq default-mode-line-format '("-" ;; mode-line-mule-info mode-line-modified mode-line-frame-identification mode-line-buffer-identification " " global-mode-string " %[(" mode-name mode-line-process minor-mode-alist "%n" ")%]--" (line-number-mode "L%l--") (column-number-mode "C%c--") (-3 . "%p") "-%-")) (set-default 'truncate-lines t) ;; Even though we truncate long lines, I'd like to be able to see ;; what I'm missing (require 'auto-show) (auto-show-mode 1) (setq-default auto-show-mode t) ;; Display time in mode line (setq display-time-day-and-date t) (display-time) ;; tabs, default color scheme (setq default-tab-width 3) (setq-default tab-stop-list; globally set tab stops default '(4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118)) (defvar tabs-are-spaces nil "*If set, replace all tabs with equivalent spaces. Automatically buffer-local when set.") (make-variable-buffer-local 'tabs-are-spaces) ;; Color theme ;; load before all the color stuff happens below (load-library "color-theme") (add-to-list 'color-themes '(color-theme-GaryF "GaryF" "Gary Fong ")) ;; If you want to have comments displayed in italics, uncomment the ;; following lines. Note that this must be done before font settings! (setq w32-enable-italics t) (make-face-italic 'font-lock-comment-face) ;; This loads file to highlight current line ;; Author: Dave Love (load "hl-line") (setq hl-line-mode t) ;; Bookmarks (setq bookmark-save-flag 1) (setq completion-auto-help t) ; I want as much help as I can get (setq completion-auto-exit t) ; Dont want to always hit return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; A B B R E V I A T I O N S ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; In abbrev mode, inserting an abbreviation causes it to expand and ;; be replaced by its expansion (setq-default abbrev-mode t) (quietly-read-abbrev-file "~/.abbrev_defs") (setq save-abbrevs t) ; Reads in an abbrev file if it exists ; C-x a i g to create an abbrev (if (file-exists-p abbrev-file-name) (read-abbrev-file)) ;; Spaces rather than spaces+tabs (setq unicon-indent-use-only-spaces t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; A U T O I N S E R T ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; directory with templates (add-hook 'find-file-hooks 'auto-insert) (load-library "autoinsert") (setq auto-insert-directory "~/insert/") ;;; templates (setq auto-insert-alist (append '((awk-mode . "awk-insert.awk")) (append '((bat-mode . "bat-insert.bat")) (append '((btm-mode . "btm-insert.btm")) (append '((cmd-mode . "cmd-insert.cmd")) (append '((fortran-mode . "fortran-insert.fortran")) (append '((f90-mode . "f90-insert.f90")) (append '((LaTeX-mode . "LaTeX-insert.LaTeX")) (append '((r-mode . "r-insert.r")) (append '((s-mode . "s-insert.s")) (append '((sas-mode . "sas-insert.sas"))))))))))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; C O L O R S ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Give me colours in major editing modes ;; First set syntax highlighting, which uses color a lot (require 'font-lock) (global-font-lock-mode t) ;; Set the colors of the mode line ;(cond (window-system ; (set-face-background 'modeline "yellow") ; (set-face-foreground 'modeline "blue") ;)) ;; Font-lock-mode affects colors of mode line, too ;(add-hook 'font-lock-mode-hook ; '(lambda () ; (set-face-background 'modeline "Blue4") ; (set-face-foreground 'modeline "Gold") ; (set-face-foreground 'secondary-selection "red") ; (set-face-background 'highlight "yellow") ;)) ;; Set the wanted overall frame color style ;;(change-color-style default-color-style) ;; Background (set-background-color "white smoke") ;; Override default text colours (custom-set-faces '(font-lock-comment-face ((((class color)) (:foreground "firebrick")))) ;'(font-lock-comment-face ((((class color)) (:foreground "green4")))) '(region ((((class color)) (:background "wheat")))) '(highlight ((((class color)) (:background "green1")))) '(font-lock-string-face ((((class color)) (:foreground "green4")))) '(font-lock-keyword-face ((((class color)) (:foreground "orange")))) '(font-lock-type-face ((((class color)) (:foreground "blue")))) '(font-lock-variable-name-face ((((class color)) (:foreground "brown")))) '(font-lock-function-name-face ((((class color)) (:foreground "royal blue")))) ;'(font-lock-function-name-face ((((class color)) (:foreground "firebrick")))) ) ;;; Here are some color preferences. I've spent a good deal of time ;;; adjusting color settings, trying to get it to look good and also be ;;; fairly easy to read. (setq default-frame-alist (append default-frame-alist ;'((foreground-color . "yellow") ;'((foreground-color . "green") ;'((foreground-color . "wheat") '((foreground-color . "black") '((background-color . "white smoke") ;'((cursor-color . "green3"))) '((cursor-color . "blue")))))) (set-face-foreground 'bold "yellow") (set-face-background 'bold "grey40") (set-face-foreground 'bold-italic "yellow green") (set-face-foreground 'italic "yellow3") (set-face-foreground 'region "white") (set-face-background 'region "blue") ;; Load custom color theme if it exists ;(color-theme-emacs-21) ;(color-theme-subtle-blue) ;(color-theme-GaryF) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; M I S C. C O M M A N D S ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; WoMan stuff for reading man pages in emacs (autoload 'woman "woman" "Decode and browse a UN*X man page." t) (autoload 'woman-find-file "woman" "Find, decode and browse a specific UN*X man-page file." t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; F A C E S ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Faces ; (set-face-foreground 'region "black") ; (set-face-background 'highlight "CadetBlue") ; (set-face-background 'secondary-selection "MediumSeaGreen") ;; New faces (defvar font-lock-number-face 'font-lock-number-face) (defvar font-lock-hexnumber-face 'font-lock-hexnumber-face) (defvar font-lock-floatnumber-face 'font-lock-floatnumber-face) (defvar font-lock-keys-face 'font-lock-keys-face) (defvar font-lock-qt-face 'font-lock-qt-face) (defface font-lock-number-face '( (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) (((class color) (background light)) (:background "hotpink")) (((class color) (background dark)) (:foreground "black" :background "hotpink")) (t (:italic t))) "blah" :group 'font-lock-highlighting-faces) (defface font-lock-hexnumber-face '( (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) (((class color) (background light)) (:background "darkblue")) (((class color) (background dark)) (:foreground "black" :background "darkblue")) (t (:italic t))) "blah" :group 'font-lock-highlighting-faces) (defface font-lock-floatnumber-face '( (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) (((class color) (background light)) (:background "darkgreen")) (((class color) (background dark)) (:foreground "black" :background "darkgreen")) (t (:italic t))) "blah" :group 'font-lock-highlighting-faces) (defface font-lock-keys-face '( (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) (((class color) (background light)) (:background "yellow")) (((class color) (background dark)) (:foreground "black" :background "yellow")) (t (:italic t))) "blah" :group 'font-lock-highlighting-faces) (defface font-lock-qt-face '( (((class grayscale) (background light)) (:foreground "LightGray" :bold t)) (((class grayscale) (background dark)) (:foreground "DimGray" :bold t)) (((class color) (background light)) (:background "brown")) (((class color) (background dark)) (:foreground "green" :background "brown")) (t (:italic t))) "blah" :group 'font-lock-highlighting-faces) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; F U N C T I O N S ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ASCII table function (defun ascii-table () "Print the ascii table. Based on a defun by Alex Schroeder " (interactive) (switch-to-buffer "*ASCII*") (erase-buffer) (insert (format "ASCII characters up to number %d.\n" 254)) (let ((i 0)) (while (< i 254) (setq i (+ i 1)) (insert (format "%4d %c\n" i i)))) (beginning-of-buffer)) ;; make-comment-italic (defun make-comment-italic () (interactive "*") (make-face-italic 'font-lock-comment-face)) ;; make-comment-unitalic (defun make-comment-unitalic () (interactive "*") (make-face-unitalic 'font-lock-comment-face)) ;; make-comment-invisible (defun make-comment-invisible () (interactive "*") (custom-set-faces '(font-lock-comment-face ((((class color)) (:foreground "white")))))) ;; make-comment-visible (defun make-comment-visible () (interactive "*") (custom-set-faces '(font-lock-comment-face ((((class color)) (:foreground "green4")))))) ;; make-comment-red (defun make-comment-red () (interactive "*") (custom-set-faces '(font-lock-comment-face ((((class color)) (:foreground "red3")))))) (defun wrap-all-lines () "Enable line wrapping" (interactive) ;this makes the function a command too (set-default 'truncate-lines nil) ) (defun open-dot-emacs () "opening-dot-emacs" (interactive) ;this makes the function a command too (find-file "~/.emacs") ) (defun open-dot-emacs () "opening-dot-emacs" (interactive) ;this makes the function a command too (find-file "~/.emacs") ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; K E Y B I N D I N G S ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;(global-set-key [home] 'beginning-of-line) ;;(global-set-key [end] 'end-of-line) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; B U F F E R / F I L E H A N D L I N G ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; syntax highlighting (font-lock) (cond (window-system ;; (require 'font-lock-menu) (setq font-lock-maximum-decoration t) (global-font-lock-mode t) (setq font-lock-support-mode 'lazy-lock-mode) (setq font-lock-defer-on-scrolling nil) (setq font-lock-defer-on-the-fly nil) (setq lazy-lock-defer-time 0) (setq lazy-lock-minimum-size 10240) )) ;; Getting new features into Emacs: load and autoload ;; Emacs gets built with a lot of default functionality for commonly ;; used functions and modes, but sometimes there is a need to ;; load in external Emacs LISP code to do special things; most of ;; this is handled automatically by Emacs such that you will only ;; see the messages from it when a new feature is being added. ;; You can add autoloads in your .emacs for features which Emacs ;; hasn't provided though, such as whist.el and wconfig.el in ;; ~gnu/emacs/local, as in the following examples (autoload 'whist "whist" "Add history entries to a file" t) (autoload 'wconfig-ring-save "wconfig" "Store the current window config." t) ;; Loading should be done only for functions which you intend to use ;; every time you run Emacs; since additional features use more ;; memory, take more time for Emacs to start-up and can slow down ;; the overall performance of the machine which Emacs is being ;; run on (if lots of features were added), it is better to use ;; autoload. The following are loaded directly because of ;; actions they take when loaded. ;; recentf --- menu of recently visited files (require 'recentf) (recentf-mode 1) ;; This method of killing the current buffer, when bound to C-x C-c, ;; allows you to close an emacs frame the same way, whether it's ;; the sole window you have open, or whether it's a "child" frame ;; of a "parent" frame. If you're like me, and use emacs in a ;; windowing environment, you probably have lots of frames open ;; at any given time. Well, it's a pain to remember to do ;; Ctrl-x 5 0 to dispose of a child frame, and to remember to do ;; C-x C-x to close the main frame (and if you're not careful, ;; doing so will take all the child frames away with it). This ;; is my solution to that: an intelligent close-frame operation ;; that works in all cases (even in an emacs -nw session). (defun intelligent-close () "quit a frame the same way no matter what kind of frame you are on" (interactive) (if (eq (car (visible-frame-list)) (selected-frame)) ;;for parent/master frame... (if (> (length (visible-frame-list)) 1) ;;close a parent with children present (delete-frame (selected-frame)) ;;close a parent with no children present (save-buffers-kill-emacs)) ;;close a child frame (delete-frame (selected-frame))) ) ;; scrolling a buffer's frame just one line at a time (setq scroll-step 1) ;; Alas, this next thing doesn't seem to work right now (setq auto-save-directory (expand-file-name "~/autosaves/")) (setq auto-save-interval 125) ;; Add Time-stamp <> or Time-stamp " " anywhere in the top 8 lines ;; of a file to insert save date and time and user: (add-hook 'write-file-hooks 'time-stamp) ;; (add-hook 'server-visit-hook '(lambda () ;; (interactive) ;; (yes-or-no-p "Hello there"))) (add-hook 'server-switch-hook 'make-frame-command) ;; (add-hook 'server-done-hook '(lambda () ;; (interactive) ;; (if (is-buffer-a-client) ;; (delete-frame)))) ;; add a comment character in front of all lines in the region (defun ewd-comment-region (start end) "Add one comment character in front of all lines in the region." (interactive "*r") (or comment-start (setq comment-start (read-input "Comment char?: "))) (ewd-prepend start end comment-start) ) ;; remove a comment character from in front of all lines in the region (defun ewd-uncomment-region (start end) "Remove one comment character from in front of all lines in the region." (interactive "*r") (or comment-start (setq comment-start (read-input "Comment char?: "))) (ewd-unprepend start end comment-start) ) (defun kill-buffer-and-window () "Kill the current buffer and delete the selected window." (interactive) (let ((buffer (current-buffer))) (delete-window (selected-window)) (kill-buffer buffer)) ) ;; let split windows display different buffers (defun split-window-switch-buffer () (interactive) "Split current window and display the two last buffers used." (split-window) (switch-to-buffer (other-buffer (current-buffer))) ) (defun hsplit-window-switch-buffer () (interactive) "Split current window horizontally and display the two last buffers used." (split-window-horizontally) (switch-to-buffer (other-buffer (current-buffer))) ) (defun kill-current-buffer () "Kill the current buffer, without confirmation." (interactive) (kill-buffer (current-buffer)) ) (defun kill-buffer-other-window (arg) "Kill the buffer in the other window, and make the current buffer full size. If no other window, kills current buffer." (interactive "p") (let ((buf (save-window-excursion (other-window arg) (current-buffer)))) (delete-windows-on buf) (kill-buffer buf)) ) (defun kill-buffer-jump-other-window (arg) "Kill this buffer and jump to other window." (interactive "p") (other-window arg) (kill-buffer-other-window arg) ) (fset 'scroll-cursor-to-top "\C-u1\C-l") (defun Kill-Line () "Kills the whole line under cursor" (interactive) (beginning-of-line) (kill-line) ) ;;begin buffer-switching methods, which I bind to Ctrl-TAB and ;; Ctrl-Shift-TAB ;; ------------------------------------------------------------------ ;; Original yic-buffer.el ;; From: choo@cs.yale.edu (young-il choo) ;; Date: 7 Aug 90 23:39:19 GMT ;; ;; Modified ;; ------------------------------------------------------------------ (defun yic-ignore (str) (or ;;buffers I don't want to switch to (string-match "\\*Buffer List\\*" str) (string-match "^TAGS" str) (string-match "^\\*Messages\\*$" str) (string-match "^\\*Completions\\*$" str) (string-match "^ " str) ;; Test to see if the window is visible on an existing visible ;; frame. Because I can always ALT-TAB to that visible frame, ;; I never want to Ctrl-TAB to that buffer in the current ;; frame. That would cause a duplicate top-level buffer ;; inside two frames. (memq str (mapcar (lambda (x) (buffer-name (window-buffer (frame-selected-window x)))) (visible-frame-list)))) ) (defun yic-next (ls) "Switch to next buffer in ls skipping unwanted ones." (let* ((ptr ls) bf bn go ) (while (and ptr (null go)) (setq bf (car ptr) bn (buffer-name bf)) (if (null (yic-ignore bn)) ;skip over (setq go bf) (setq ptr (cdr ptr)) ) ) (if go (switch-to-buffer go))) ) (defun yic-prev-buffer () "Switch to previous buffer in current window." (interactive) (yic-next (reverse (buffer-list))) ) (defun yic-next-buffer () "Switch to the other buffer (2nd in list-buffer) in current window." (interactive) (bury-buffer (current-buffer)) (yic-next (buffer-list)) ) ;; end of yic buffer-switching methods (autoload 'goto-last-buffer "goto-last-buffer" nil t) (global-set-key [(control c) (b)] 'goto-last-buffer) (global-set-key [(control c) (B)] 'buffer-menu) ;; Make region visible (only up to next operation on it) (setq transient-mark-mode t) ;; Filename case-sensitivity. For Windows systems only (if (eq system-type 'windows-nt) (setq w32-downcase-file-names t) ) ;; Convert DOS cr-lf to UNIX newline (defun dos-unix () (interactive) (goto-char (point-min)) (while (search-forward "\r" nil t) (replace-match ""))) ;; Convert UNIX newline to DOS cr-lf (defun unix-dos () (interactive) (goto-char (point-min)) (while (search-forward "\n" nil t) (replace-match "\r\n")) ) ;; Insert date into buffer (defun insert-date () "Insert date at point." (interactive) (insert (format-time-string "%A, %B %e, %Y %k:%M:%S %z")) ) ;; some programs require this, few if any of mine are bothered by it (setq require-final-newline t) ;;;;; rect-mark ;;;;; ;; Support for marking a rectangle of text with highlighting (rect- mark.el). ; Only needed for emacs - xemacs has something similar built in. ; ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/ (if (boundp 'running-xemacs) ; Just bind mouse rectangle select similarly to rect-mark.el on GNU Emacs. ; Note you can't show a rectangular region during keyboard select - ; only during mouse select. (progn (global-set-key [(shift button1)] 'mouse-track-do-rectangle) (global-set-key (kbd "C-x r C-SPC") 'set-mark-command) (global-set-key (kbd "C-x r C-x") 'exchange-point-and-mark) (global-set-key (kbd "C-x r C-w") 'kill-rectangle) ) ;(else GNU Emacs (progn (global-set-key (kbd "C-x r C-SPC") 'rm-set-mark) (global-set-key (kbd "C-x r C-x") 'rm-exchange-point-and-mark) (global-set-key (kbd "C-x r C-w") 'rm-kill-region) (global-set-key (kbd "C-x r M-w") 'rm-kill-ring-save) ;- now does a rectangular mark. (global-set-key [(shift down-mouse-1)] 'rm-mouse-drag-region) (autoload 'rm-set-mark "rect-mark" "Set mark for rectangle." t) (autoload 'rm-exchange-point-and-mark "rect-mark" "Exchange point and mark for rectangle." t) (autoload 'rm-kill-region "rect-mark" "Kill a rectangular region and save it in the kill ring." t) (autoload 'rm-kill-ring-save "rect-mark" "Copy a rectangular region to the kill ring." t) (autoload 'rm-mouse-drag-region "rect-mark" "Drag out a rectangular region with the mouse." t) ) ) ;; dealing with marking, yanking rectangular regions ;;(defun option-package-start-rect-mark () ;; (autoload 'rm-set-mark "rect-mark" ;; "Set mark for rectangle." t) ;; (autoload 'rm-exchange-point-and-mark "rect-mark" ;; "Exchange point and mark for rectangle." t) ;; (autoload 'rm-kill-region "rect-mark" ;; "Kill a rectangular region and save it in the kill ring." t) ;; (autoload 'rm-kill-ring-save "rect-mark" ;; "Copy a rectangular region to the kill ring." t) ;; (autoload 'rm-mouse-drag-region "rect-mark" ;; "Drag out a rectangular region with the mouse." t) ;; (option-enable-keys 'option-keys-rect-mark-alist) ;;) ;;(defun option-package-end-rect-mark () ;; (option-disable-keys 'option-keys-rect-mark-alist) ;;) ;;; session management (require 'desktop) (load "desktop") (desktop-load-default) (desktop-read) ;;; misc key bindings (global-set-key [(alt g)] 'goto-line) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; O U T P U T O F M - X C U S T O M I Z E ;; D O N O T E D I T B E L O W T H I S L I N E ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 06/02/2005 1909 (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. '(abbrev-mode t) '(bookmark-save-flag 3) '(calculator-number-digits 6) '(case-fold-search t) '(current-language-environment "Latin-1") '(default-input-method "latin-1-prefix") '(explicit-shell-file-name "d:\\UWIN\\usr\\bin\\ksh.exe") '(global-font-lock-mode t nil (font-lock)) '(global-hl-line-mode t nil (hl-line)) '(hl-line-face (quote highlight)) '(mouse-wheel-mode t nil (mwheel)) '(msb-mode t nil (msb)) '(only-global-abbrevs t) '(save-completions-retention-time 672) '(save-place t nil (saveplace)) '(server-program "c:/emacs-21.3/bin/gnuserv.exe") '(sh-alias-alist (quote ((ksh . ksh93) (bash2 . bash) (sh5 . sh) (nil)))) '(show-paren-mode t nil (paren)) '(show-paren-ring-bell-on-mismatch t) '(show-paren-style (quote expression)) '(tempo-insert-region t) '(tempo-interactive t)) (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. ) ;; ----------------------------------------------------------------- ;; AUC TeX ;(add-to-list 'load-path "d:/emacs-21.3/site-lisp/auctex/") (add-to-list 'Info-default-directory-list "d:/emacs-21.3/site- lisp/auctex/doc/") (load "tex-site") ;; ----------------------------------------------------------------- ;; Reftex activation (Reftex is included with Emacs 21.1) (autoload 'reftex-mode "reftex" "RefTeX Minor Mode" t) (autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil) (autoload 'reftex-citation "reftex-cite" "Make citation" nil) (autoload 'reftex-index-phrase-mode "reftex-index" "Phrase mode" t) (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode ;; ---------------------------------------------------------------------- ;; Info for Ispell (add-to-list 'Info-default-directory-list "d:/Cygwin/usr/local/info/") ;; info for Aspell ;; Enable aspell as the spell program ;; (Requires that the Aspell program and a dictionary be installed on the PC. ;; Install them in: c:\Aspell ;; Add the following to the PATH variable: c:\Aspell\bin ;; The latest version of the Aspell program, Aspell-.exe, ;; and the dictionary of your choice, for example: aspell-en- .exe, ;; can be found at http://aspell.net/win32/). (setq-default ispell-program-name "aspell") (message ".emacs loaded.") ;; EOF (put 'downcase-region 'disabled nil) (put 'upcase-region 'disabled nil) ****************** end of .emacs file ********************** Note: the ****start**** and ****end**** lines are _not_ part of the .emacs file, of course. Thanks in advance for suggestions anyone can provide. Sincerely, Will Grove, a none-too-savvy emacs user