help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: syntax / method for executing an emacs lisp function?


From: Kevin Rodgers
Subject: Re: syntax / method for executing an emacs lisp function?
Date: Tue, 30 May 2006 11:30:27 -0600
User-agent: Thunderbird 1.5.0.2 (Windows/20060308)

farbot@gmail.com wrote:
I'm writing a language mode for emacs, but have never used emacs before
(the mode is for others to use).  I've searched for hours, but can't
find the incantation I need.  I'd appreciate some pointers to specific
help files or techniques.

First, you should read the Introduction to Programming in Emacs Lisp,
which is a manual distributed with Emacs 22 in Info format and available
on the web at http://www.gnu.org/software/emacs/emacs-lisp-intro/

The Emacs Lisp reference manual is distributed with Emacs in Info
format, too.  `C-h i' then `m Info RET' will get you started with
Info, or read it online at http://www.gnu.org/software/emacs/elisp/

The Emacs Wiki is a great resource; here are two good pages, one general
and one specific:

http://www.emacswiki.org/cgi-bin/wiki/CategoryCode
http://www.emacswiki.org/cgi-bin/wiki/CreateNewMajorMode

I'd like to run the regexp-opt command to optimize my list of keywords.
 For example:
(regexp-opt '("TRUE" "FALSE") t)

I've tried a bunch of methods from inside emacs, but it always says
there is "no match" for regexp-opt.

regexp-opt is autoloaded in Emacs 22, but perhaps you need this:
(require 'regexp-opt)

I've had the best luck on the
command line using 'emacs --eval' option, but one of two things
happens: 1) it dislikes my syntax (badly placed ()s, unmatched '), or
2) it accepts the syntax, and opens emacs and shows a *scratch* buffer
in "(Lisp Interaction)" mode -- but there are no function results
present.  In the *Messages* buffer, I find my command echoed, but still
no function results.

Please post exactly what you did, and exactly what happened.  My
crystal ball is at the shop.

The results of a function call given on the command line with --eval
are not printed anywhere by default.

I also tried typing commands in Lisp Interaction mode -- but neither
return nor enter makes them execute.

That's because RET is bound to newline in that mode.  You need to
type C-j, which runs eval-print-last-sexp.

This is documented in the Emacs manual in the Lisp Interaction node.

I'm thinking I need to figure out how to execute from a file instead of
the command line -- since some of my keyword lists are quite long (not
sure how much fits on the command line).

That's up to your shell and your OS.  But putting your Emacs Lisp in
its own file is a good idea anyway.

I'm running emacs 21.2.1 from the command line on Mac OS X 10.4.6.
Thanks for any pointers you might have.

Read the Fine Manuals.

--
Kevin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]