From: Oliver Scholz <alkibiades@gmx.de>
Subject: Re: Advice on writing packages please
Date: Mon, 12 May 2003 16:15:53 +0200 [thread overview]
Message-ID: <uissgl086.fsf@ID-87814.user.dfncis.de> (raw)
In-Reply-To: y2fznk8g7u.fsf@crpppc215.epfl.ch
marcuirl <marcuirl@imap.no2this.cc> writes:
> Hey all,
>
> I am just about ready to start writing an emacs package of my
> own. Some of the ones I have to use just don't do it for me anymore!
> So at least I have a source to work from.
>
> I have reasonable programming skills, though little in lisp ;-) so I
> gain two skills from this! The questions I have:
>
> Is there a source of info on the web that I can use to help in writing
> major modes for emacs?
>
> What advice would you guys/gals give an enthusiastic newbie to this
> field?
I assume that you already have the Emacs Lisp Reference Manual. Maybe
you could also have a look at Robert Chassel's "Introduction to Emacs
Lisp". The latter targets non-Programmers as an audience, but if you
are very new to Lisp there might still be something helpful for you.
Furthermore have a look at the Emacs Wiki:
<URL: http://www.emacswiki.org>, it is an excellent resource for all
kind of information about Emacs Lisp: examples, tipps, code snippets.
For major modes I have the following links in my private Wiki:
- Tutorial
http://two-wugs.net/emacs/mode-tutorial.html
- Generic mode: for simple modes
http://www.emacswiki.org/cgi-bin/wiki.pl?GenericMode
- derived modes
http://www.emacswiki.org/cgi-bin/wiki.pl?DerivedMode
- Short example
http://www.emacswiki.org/cgi-bin/wiki.pl?SampleMode
And when you encounter a particular problem, you can always ask here,
of course.
> Then also some ideas on really basic stuff like:
>
> When editing an xx.el file for mode xx do you need to keep starting a
> new emacs session for the changes to take effect? Is there an easier
> way to do this?
Uh, no, Elisp is an interactive language and -- moreover -- you have
access to the Lisp interpreter all the time. (Even typing means
executing Lisp commands.) So most changes take effect as soon as you
evaluate them with `C-x C-e' or `M-x eval-buffer'. There are a few
exceptions to that rule, the most notable being `defvar' and
`defcustom' forms. But you can force evalutation of those forms by
typing `M-C-x' with point in such a form in emacs-lisp-mode. (In
emacs-lisp-mode `M-C-x' works for evaluating `defun's, too.) So at
most you have to execute the initialisation of your major mode in a
particular buffer again (by typing `M-x <major mode name>') to make
your changes take effect. No need to restart Emacs, unless you have
messed up the state of the session.
You could also look at edebug (described in the Emacs Lisp
Reference), which is a stepper for Elisp. Invoke it with `C-u M-C-x'
with point in a `defun'.
Does that help?
Oliver
--
23 Floréal an 211 de la Révolution
Liberté, Egalité, Fraternité!
next prev parent reply other threads:[~2003-05-12 14:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-12 13:08 Advice on writing packages please marcuirl
2003-05-12 13:56 ` Lute Kamstra
2003-05-12 14:15 ` Oliver Scholz [this message]
2003-05-20 8:34 ` marcuirl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=uissgl086.fsf@ID-87814.user.dfncis.de \
--to=alkibiades@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).