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

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

Re: usability issue


From: David Kastrup
Subject: Re: usability issue
Date: 16 Jan 2003 12:02:59 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

Andrew Brehaut <gr1dl0ck@deviantart.com> writes:

> David Kastrup wrote:
> > Andrew <gr1dl0ck@deviantart.com> writes:
> > 
> >>John Paul Wallington wrote:
> >>
> >>>Andrew <andrew@uberwald.discnet> wrote:
> >>>
> >>>
> >>>>i just don't know how to find if I'm at the beginning of a line. Is
> >>>>there a function; or does it need to be written specially?
> >>>
> >>>See `bolp'.
> >>>
> >>
> >>for the sack of politness; heres my version of the functions (only
> >>line and buffer sorry) feel free to do whatever.
> >>
> >>(defun beginning-of-line-or-buffer ()
> >>   "Sends point to the beginning of the current line, or, if already there,
> >>    the beginning of the buffer"
> >>   (interactive)
> >>   (if (bolp)
> >>       (goto-char (point-min))
> >>     (beginning-of-line)
> >>     ))
> >>
> >>(defun end-of-line-or-buffer ()
> >>   "Sends point to the beginning of the current line, or, if already there,
> >>    the beginning of the buffer"
> >>   (interactive)
> >>   (if (eolp)
> >>       (goto-char (point-max))
> >>     (end-of-line)
> >>     ))
> > I think at least the far jumps should place a mark so that C-x C-x
> > will get you back.  So you would want to use beginning-of-buffer
> > instead of (goto-char (point-min)) and the corresponding for the end.
> > 
> 
> Thanks for that; the info pages were kinda missleading (perhaps only
> for a beginner though).

And one last refinement: beginning-of-buffer is able to take a prefix
argument with several different meanings.  While beginning-of-line
can also take such an argument, it is more or less a safe bet that
you would rarely do so in interactive use, and you still could with a
combination of cursor-up with argument and the Pos1 key, anyhow.

So if we get a prefix-argument, we may assume
a) the beginning-of-buffer functionality is wanted
b) it is wanted with the given argument.

So you would want to make something like

(defun beginning-of-line-or-buffer (&optional arg)
   "Send point to beginning of line or buffer.
If point is not yet at the beginning of the current line, it is
placed there.  If already there, it is sent to the beginning of
the buffer using `beginning-of-buffer'.  If a prefix argument ARG
is given, it is passed to `beginning-of-buffer' which gets then
called regardless of whether point is at the beginning of a line."
   (interactive "P")
   (if (or arg (bolp))
       (beginning-of-buffer arg)
     (beginning-of-line)))

Notice that I also changed the incorrect documentation string.  You
can check those sort of strings by using
M-x checkdoc RET

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum


reply via email to

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