I) Adding additional syntax coloring ==================================== From done@ece.arizona.edu Tue Jul 22 22:09:23 1997 Date: Sun, 29 Jun 1997 10:16:13 -0700 From: Dan Nicolaescu To: fiskjm@ctrvax.Vanderbilt.Edu Subject: article in Linuz Gazette Hi! I have one comment about the screen captures of Emacs and XEmacs in your article in Linux Gazette at http://www.ssc.com/lg/issue18/wkndmech.html To truly ilustrate both emacsen syntax coloring capabilities you would better take a snapshot after you put in your .emacs (setq font-lock-maximum-decoration t) and restart [X]Emacs. Regards, Dan II) Setting up func-menu ======================== x-gateway: relay1.UU.NET from xemacs to comp.emacs.xemacs; Tue, 24 Jun 1997 06:40:46 EDT Date: Tue, 24 Jun 1997 11:30:48 +0100 Message-ID: <199706241030.LAA00716@charlie.videonetworks.com> From: djh@videonetworks.com (David Hughes) Subject: Re: Is func-menu what I'm looking for? Newsgroups: comp.emacs.xemacs Path: news.vanderbilt.edu!newsfeed.telalink.net!telalink!news.wildstar.net!news.inetnebr.com!news.enteract.com!newsfeed.enteract.com!chi-news.cic.net!news.mathworks.com!uunet!wendy-fate.uu.net!xemacs Sender: xemacs-request@xemacs.org Lines: 50 Xref: news.vanderbilt.edu comp.emacs.xemacs:16055 > Hi gurus, > > I remember, a while ago, I used to be have a menu that would > give me the name of the functions defined in the current buffer. > The menu would also allow me to point to one particular function. > > I'd like to be able to use that again, but I do not know > which package does it. > Is it func-menu? > If so, where can I find it? I have tried, but I could > not find it. Add the following (or something like it) to your .emacs ;;; func-menu is a package that scans your source file for function ;;; definitions and makes a menubar entry that lets you jump to any ;;; particular function definition by selecting it from the menu. The ;;; following code turns this on for all of the recognized languages. ;;; Scanning the buffer takes some time, but not much. ;;; ;;; Send bug reports, enhancements etc to: ;;; David Hughes ;;; (cond (running-xemacs (require 'func-menu) (define-key global-map 'f8 'function-menu) (add-hook 'find-file-hooks 'fume-add-menubar-entry) (define-key global-map "\C-cl" 'fume-list-functions) (define-key global-map "\C-cg" 'fume-prompt-function-goto) ;; The Hyperbole information manager package uses (shift button2) and ;; (shift button3) to provide context-sensitive mouse keys. If you ;; use this next binding, it will conflict with Hyperbole's setup. ;; Choose another mouse key if you use Hyperbole. (define-key global-map '(shift button3) 'mouse-function-menu) ;; For descriptions of the following user-customizable variables, ;; type C-h v (setq fume-max-items 25 fume-fn-window-position 3 fume-auto-position-popup t fume-display-in-modeline-p t fume-menubar-menu-location "File" fume-buffer-name "*Function List*" fume-no-prompt-on-valid-default nil) )) -- David Hughes III) Larry Ayers article (LG Issue 11) on the kill-ring menu ============================================================ [Image] "Linux Gazette...making Linux just a little less scary! "[Image] ---------------------------------------------------------------------------- A "Kill-Ring" Menu For Xemacs by Larry Ayers Copyright © 1996 Published in Issue 11 of the Linux Gazette ---------------------------------------------------------------------------- Lately I've been enjoying exploring the myriad capabilities of GNU Emacs' offspring and competitor, Xemacs. Aside from the burden of downloading the voluminous source, Xemacs offers quite a few features which Gnu Emacs lacks. Luckily for those considering a transition, the basic keystrokes and commands are nearly identical. One feature of Gnu Emacs which I began to miss after a while was the handy pull-down menu which displays the first few words of each cut or copied selection made in the current session, i.e. the "kill-ring". The prospect of figuring out how the lisp files work which determine the menu-bar's structure wasn't too appealing. I know a little lisp, but not enough to add a new menu entry. Some weeks later, while idly browsing through some emacs newsgroup headers, I came across this posting, which I'll quote here in full: In article <9604170740.AA26236@portia.uk.abs> imac@portia.rd.abs.alcatel.co.uk (Ian MacKinnon) writes: > When I used emacs (before I saw the light), I made use of a function > mouse-menu-choose-yank which offered you the choice to yank from the recent > history of selections via a popup menu, but I can't get it to work in > XEmacs because x-popup-menu doesn't exist, and the parameters to > popup-menu are different. Has anyone got an alternative. I enclose the > ... I have hacked the Emacs codes of mouse-menu-choose-yank to put in Xemacs as follows: (defvar yank-menu-length 40 "*Maximum length of an item in the menu for select-and-yank.") (defun select-and-yank-filter (menu) (let* ((count 0)) (append menu (mapcar #'(lambda (str) (if (> (length str) yank-menu-length) (setq str (substring str 0 yank-menu-length))) (prog1 (vector str (list 'progn '(push-mark (point)) (list 'insert (list 'current-kill count t))) t) (setq count (1+ count)))) kill-ring)))) For this to work, you have to put on your menu bar the following submenu (use add-submenu for that for example): ("Select and Yank" :included kill-ring :filter select-and-yank-filter) Hope this help ----------------------------------------------------------------------- PHAM Dinh Tuan | e-mail: Dinh-Tuan.Pham@imag.fr Laboratoire de Modelisation et Calcul | Tel: +33 76 51 44 23 BP 53, 38041 Grenoble cedex (France) | Fax: +33 76 63 12 63 ----------------------------------------------------------------------- It took a little experimenting to get this to work. The first section of lisp code, ending with "kill-ring))))", can be copied unaltered into the xemacs section of your ~/.emacs file. If you're using Xemacs 19.14 (the current version), it goes into your ~/.xemacs-options file. The second, shorter lisp snippet needs one small addition: (add-submenu nil '("Kill-Ring" :included kill-ring :filter select-and-yank-filter)) As well as adding the proper syntax for add-submenu, I shortened the menu-title, but it could be called anything you like. When I first restarted Xemacs after placing this code into the init file the new submenu was nowhere to be seen. I surmised that I'd made some error, and put off further experimentation for another time. A few minutes later I was busily editing some file. I happened to glance up at the menu-bar and found a brand-new kill-ring submenu. Surprisingly the new menu only appears after a selection has been cut or copied. I was happy, and thought that by relating my experience I could encourage other Xemacs users (especially the ones who know as little lisp as I do!) to try this neat hack. Thanks to Dinh Tuan Pham, if he or she should happen to see this. IV) Setting up MET-% to jump to matching paren ============================================== x-gateway: relay3.UU.NET from xemacs to comp.emacs.xemacs; Mon, 23 Jun 1997 08:22:07 EDT Date: Mon, 23 Jun 1997 08:20:35 -0400 From: steger@WILLEY.tautron.com (Tom Steger) Message-ID: <199706231220.IAA09570@huck.tautron.com> Subject: Re: matching parenthesis Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Md5: yOGKPHL0YSjI2n6HF4u3zg== Newsgroups: comp.emacs.xemacs Path: news.vanderbilt.edu!uunet!wendy-fate.uu.net!xemacs Sender: xemacs-request@xemacs.org Lines: 62 Xref: news.vanderbilt.edu comp.emacs.xemacs:15931 > From xemacs.org!xemacs-request@bort.mv.net Mon Jun 23 02:10:26 1997 > Resent-Date: Sun, 22 Jun 1997 15:52:25 -0500 (CDT) > From: Chetan Vora > Subject: matching parenthesis > Date: Sun, 22 Jun 1997 16:13:57 -0400 > Nntp-Posting-Host: 135.21.110.* > Mime-Version: 1.0 > Content-Transfer-Encoding: 7bit > Xref: uunet comp.emacs.xemacs:23301 > To: mv!xemacs@xemacs.org > Resent-Message-Id: <"vsp4X2.0.8g4.72Php"@xemacs> > Resent-From: mv!xemacs@xemacs.org > X-Mailing-List: archive/latest/6515 > X-Loop: xemacs@xemacs.org > Resent-Sender: mv!xemacs-request@xemacs.org > > Hi, > > Is there a command in xemacs19.15 by which I can go to a matching > parenthesis (like % in vi) ?? > > I do have the parenthesis library working which highlights the > matching parenthesis but if the matching parenthesis is out > of the page how do I get to it without moving the cursor ?? > > Thanks in advance, > Chetan > I got the following from hall@grumpy.nl.nuwc.navy.mil in response to a similar question. I bound it to ALT %. (defun goto-matching-paren () "Move cursor to matching paren." (interactive) (let* ((oldpos (point)) (blinkpos)) (condition-case () (setq blinkpos (scan-sexps oldpos 1)) (error nil)) (if blinkpos (setq blinkpos (1- blinkpos)) (condition-case () (setq blinkpos (scan-sexps (1+ oldpos) -1)) (error nil))) (setq mismatch (/= (char-after oldpos) (logand (lsh (aref (syntax-table) (char-after blinkpos)) -8) 255))) (if mismatch (progn (setq blinkpos nil) (message "Mismatched parentheses")) (if blinkpos (goto-char blinkpos))))) (global-set-key "\M-%" 'goto-matching-paren)