unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Requested function: just-one-empty-line()
@ 2008-10-06  8:50 Nordlöw
  2008-10-06 11:15 ` Bernardo Bacic
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Nordlöw @ 2008-10-06  8:50 UTC (permalink / raw)
  To: help-gnu-emacs

I'm looking for a function just-one-empty-line(), or empty-lines() for
the multi-line-variant, that does kind of what just-one-space() does
but instead works on empty lines. Any suggestions?

Example:

pre;\n
\n
\n
post;

is converted to

pre;\n
\n
post;

Thanks in advance,
Nordlöw


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06  8:50 Requested function: just-one-empty-line() Nordlöw
@ 2008-10-06 11:15 ` Bernardo Bacic
       [not found] ` <mailman.350.1223291799.25473.help-gnu-emacs@gnu.org>
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Bernardo Bacic @ 2008-10-06 11:15 UTC (permalink / raw)
  To: help-gnu-emacs


> I'm looking for a function just-one-empty-line(), or empty-lines() for
> the multi-line-variant, that does kind of what just-one-space() does
> but instead works on empty lines. Any suggestions?
> 
> Example:
> 
> pre;\n
> \n
> \n
> post;
> 
> is converted to
> 
> pre;\n
> \n
> post;

a regexp search (for ^J\{2,\}) and replace comes to mind ...




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
       [not found] ` <mailman.350.1223291799.25473.help-gnu-emacs@gnu.org>
@ 2008-10-06 11:20   ` Nordlöw
  0 siblings, 0 replies; 9+ messages in thread
From: Nordlöw @ 2008-10-06 11:20 UTC (permalink / raw)
  To: help-gnu-emacs

On 6 Okt, 13:15, Bernardo Bacic <bernardo.ba...@pobox.com> wrote:
> > I'm looking for a function just-one-empty-line(), or empty-lines() for
> > the multi-line-variant, that does kind of what just-one-space() does
> > but instead works on empty lines. Any suggestions?
>
> > Example:
>
> > pre;\n
> > \n
> > \n
> > post;
>
> > is converted to
>
> > pre;\n
> > \n
> > post;
>
> a regexp search (for ^J\{2,\}) and replace comes to mind ...

Which search and replace functions should I use?

/Nordlöw


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06  8:50 Requested function: just-one-empty-line() Nordlöw
  2008-10-06 11:15 ` Bernardo Bacic
       [not found] ` <mailman.350.1223291799.25473.help-gnu-emacs@gnu.org>
@ 2008-10-06 11:39 ` Sergei
  2008-10-06 11:50 ` Andreas Politz
  3 siblings, 0 replies; 9+ messages in thread
From: Sergei @ 2008-10-06 11:39 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 6, 3:50 pm, Nordlöw <per.nord...@gmail.com> wrote:
> I'm looking for a function just-one-empty-line(), or empty-lines() for
> the multi-line-variant, that does kind of what just-one-space() does
> but instead works on empty lines. Any suggestions?

> Example:

> pre;\n
> \n
> \n
> post;

> is converted to

> pre;\n
> \n
> post;

"C-h k C-x C-o" tells me that


C-x C-o runs the command delete-blank-lines, which is an interactive
compiled Lisp function in `emacs/lisp/simple.el'.

It is bound to C-x C-o.

(delete-blank-lines)

On blank line, delete all surrounding blank lines, leaving just one.
On isolated blank line, delete that one.
On nonblank line, delete any immediately following blank lines.




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06  8:50 Requested function: just-one-empty-line() Nordlöw
                   ` (2 preceding siblings ...)
  2008-10-06 11:39 ` Sergei
@ 2008-10-06 11:50 ` Andreas Politz
  2008-10-06 12:14   ` Nordlöw
  3 siblings, 1 reply; 9+ messages in thread
From: Andreas Politz @ 2008-10-06 11:50 UTC (permalink / raw)
  To: help-gnu-emacs

Nordlöw wrote:
> I'm looking for a function just-one-empty-line(), or empty-lines() for
> the multi-line-variant, that does kind of what just-one-space() does
> but instead works on empty lines. Any suggestions?
> 
> Example:
> 
> pre;\n
> \n
> \n
> post;
> 
> is converted to
> 
> pre;\n
> \n
> post;
> 
> Thanks in advance,
> Nordlöw


,----[ C-h f delete-blank-lines RET ]
| delete-blank-lines is an interactive compiled Lisp function in `simple.el'.
| It is bound to C-x C-o.
| (delete-blank-lines)
|
| On blank line, delete all surrounding blank lines, leaving just one.
| On isolated blank line, delete that one.
| On nonblank line, delete any immediately following blank lines.
`----

-ap


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06 11:50 ` Andreas Politz
@ 2008-10-06 12:14   ` Nordlöw
  2008-10-06 14:27     ` Xah
  0 siblings, 1 reply; 9+ messages in thread
From: Nordlöw @ 2008-10-06 12:14 UTC (permalink / raw)
  To: help-gnu-emacs

On 6 Okt, 13:50, Andreas Politz <poli...@fh-trier.de> wrote:
> Nordlöw wrote:
> > I'm looking for a function just-one-empty-line(), or empty-lines() for
> > the multi-line-variant, that does kind of what just-one-space() does
> > but instead works on empty lines. Any suggestions?
>
> > Example:
>
> > pre;\n
> > \n
> > \n
> > post;
>
> > is converted to
>
> > pre;\n
> > \n
> > post;
>
> > Thanks in advance,
> > Nordlöw
>
> ,----[ C-h f delete-blank-lines RET ]
> | delete-blank-lines is an interactive compiled Lisp function in `simple.el'.
> | It is bound to C-x C-o.
> | (delete-blank-lines)
> |
> | On blank line, delete all surrounding blank lines, leaving just one.
> | On isolated blank line, delete that one.
> | On nonblank line, delete any immediately following blank lines.
> `----
>
> -ap

Great!

Thanks a lot!

/Nordlöw


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06 12:14   ` Nordlöw
@ 2008-10-06 14:27     ` Xah
  2008-10-06 15:24       ` Andreas Politz
  0 siblings, 1 reply; 9+ messages in thread
From: Xah @ 2008-10-06 14:27 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 6, 5:14 am, Nordlöw <per.nord...@gmail.com> wrote:
> On 6 Okt, 13:50, Andreas Politz <poli...@fh-trier.de> wrote:

> > Nordlöw wrote:
> > > I'm looking for a function just-one-empty-line(), or empty-lines() for
> > > the multi-line-variant, that does kind of what just-one-space() does
> > > but instead works on empty lines. Any suggestions?
>
> > > Example:
>
> > > pre;\n
> > > \n
> > > \n
> > > post;
>
> > > is converted to
>
> > > pre;\n
> > > \n
> > > post;
>
> > > Thanks in advance,
> > > Nordlöw
>
> > ,----[ C-h f delete-blank-lines RET ]
> > | delete-blank-lines is an interactive compiled Lisp function in `simple.el'.
> > | It is bound to C-x C-o.
> > | (delete-blank-lines)
> > |
> > | On blank line, delete all surrounding blank lines, leaving just one.
> > | On isolated blank line, delete that one.
> > | On nonblank line, delete any immediately following blank lines.
> > `----

Since delete-blank-lines and just-one-space are similar in function
from user point of view, i combined them into one single function,
that calls each depending on the context. So, a single key is assigned
to this command, saving up shortcut spaces.

(defun shrink-whitespaces ()
  "Collapse all white spaces around point, depending on context.
White space here includes space, tabs, and any end of line char.
This commands either calls just-one-space or delete-blank-lines."
  (interactive)
  (let (p1 p2 mytext)
    (save-excursion
      (skip-chars-backward "\t \n")
      (setq p1 (point))
      (skip-chars-forward "\t \n")
      (setq p2 (point))
      (setq mytext (buffer-substring-no-properties p1 p2))
      )
    (if (string-match "[\t ]*\n[\t ]*\n" mytext)
        (progn (delete-blank-lines))
      (progn (just-one-space))
      )
    )
  )

http://xahlee.org/emacs/ergonomic_emacs_keybinding.html

  Xah
∑ http://xahlee.org/^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06 14:27     ` Xah
@ 2008-10-06 15:24       ` Andreas Politz
  2008-10-07  2:53         ` Xah
  0 siblings, 1 reply; 9+ messages in thread
From: Andreas Politz @ 2008-10-06 15:24 UTC (permalink / raw)
  To: help-gnu-emacs

Xah wrote:
> On Oct 6, 5:14 am, Nordlöw <per.nord...@gmail.com> wrote:
>> On 6 Okt, 13:50, Andreas Politz <poli...@fh-trier.de> wrote:
> 
>>> Nordlöw wrote:
>>>> I'm looking for a function just-one-empty-line(), or empty-lines() for
>>>> the multi-line-variant, that does kind of what just-one-space() does
>>>> but instead works on empty lines. Any suggestions?
>>>> Example:
>>>> pre;\n
>>>> \n
>>>> \n
>>>> post;
>>>> is converted to
>>>> pre;\n
>>>> \n
>>>> post;
>>>> Thanks in advance,
>>>> Nordlöw
>>> ,----[ C-h f delete-blank-lines RET ]
>>> | delete-blank-lines is an interactive compiled Lisp function in `simple.el'.
>>> | It is bound to C-x C-o.
>>> | (delete-blank-lines)
>>> |
>>> | On blank line, delete all surrounding blank lines, leaving just one.
>>> | On isolated blank line, delete that one.
>>> | On nonblank line, delete any immediately following blank lines.
>>> `----
> 
> Since delete-blank-lines and just-one-space are similar in function
> from user point of view, i combined them into one single function,
> that calls each depending on the context. So, a single key is assigned
> to this command, saving up shortcut spaces.
> 
> (defun shrink-whitespaces ()
>   "Collapse all white spaces around point, depending on context.
> White space here includes space, tabs, and any end of line char.
> This commands either calls just-one-space or delete-blank-lines."
>   (interactive)
>   (let (p1 p2 mytext)
>     (save-excursion
>       (skip-chars-backward "\t \n")
>       (setq p1 (point))
>       (skip-chars-forward "\t \n")
>       (setq p2 (point))
>       (setq mytext (buffer-substring-no-properties p1 p2))
>       )
>     (if (string-match "[\t ]*\n[\t ]*\n" mytext)
>         (progn (delete-blank-lines))
>       (progn (just-one-space))
>       )
>     )
>   )
> 
> http://xahlee.org/emacs/ergonomic_emacs_keybinding.html
> 
>   Xah
> ∑ http://xahlee.org/
> 
> ☄

Is the parenstyle part of your 'Modernization of emacs' program or
are you just trying to offend 'tech-geekers' ? ;O)

-ap


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Requested function: just-one-empty-line()
  2008-10-06 15:24       ` Andreas Politz
@ 2008-10-07  2:53         ` Xah
  0 siblings, 0 replies; 9+ messages in thread
From: Xah @ 2008-10-07  2:53 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 6, 8:24 am, Andreas Politz <poli...@fh-trier.de> wrote:
> > Since delete-blank-lines and just-one-space are similar in function
> > from user point of view, i combined them into one single function,
> > that calls each depending on the context. So, a single key is assigned
> > to this command, saving up shortcut spaces.
>
> > (defun shrink-whitespaces ()
> >   "Collapse all white spaces around point, depending on context.
> > White space here includes space, tabs, and any end of line char.
> > This commands either calls just-one-space or delete-blank-lines."
> >   (interactive)
> >   (let (p1 p2 mytext)
> >     (save-excursion
> >       (skip-chars-backward "\t \n")
> >       (setq p1 (point))
> >       (skip-chars-forward "\t \n")
> >       (setq p2 (point))
> >       (setq mytext (buffer-substring-no-properties p1 p2))
> >       )
> >     (if (string-match "[\t ]*\n[\t ]*\n" mytext)
> >         (progn (delete-blank-lines))
> >       (progn (just-one-space))
> >       )
> >     )
> >   )
>
> >http://xahlee.org/emacs/ergonomic_emacs_keybinding.html
>
> >   Xah
> > ∑http://xahlee.org/
>
> > ☄
>
> Is the parenstyle part of your 'Modernization of emacs' program or
> are you just trying to offend 'tech-geekers' ? ;O)

The quick answer is that i'm just lazy.

The full answer is that i think programers should never spend time to
manually format his code. In fact this is one of my big gribe, and has
wrote several articles about it, several of which are results of
newsgroup flamewars.

See

• A Simple Lisp Code Formatter
http://xahlee.org/emacs/lisp_formatter.html

• The Harm of Hard-wrapping Lines
http://xahlee.org/UnixResource_dir/writ/hard-wrap.html

• Fundamental Problems of Lisp
http://xahlee.org/UnixResource_dir/writ/lisp_problems.html
(see the section “Automatic, Uniform, Universal, Source Code Display”
about the relation of fully regular syntax and code formatting)

In emacs, in just about any language mode, despite elisp power and 3
decades of code, programers basically still manually format each line
of code. It would be much better, if programer can press a button, and
emacs will call pretty-reformat-current-block similar to fill-
paragraph or unfill-paragraph.

A algorithm for formatting of source code is a trivial problem in the
theoretical sense, it's just tedious to code it. The formatting of
mostly regular syntax such as lisp is more trivial. I do hope down the
road i'll write such a function for at least lisp.

  Xah
∑ http://xahlee.org/^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2008-10-07  2:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-06  8:50 Requested function: just-one-empty-line() Nordlöw
2008-10-06 11:15 ` Bernardo Bacic
     [not found] ` <mailman.350.1223291799.25473.help-gnu-emacs@gnu.org>
2008-10-06 11:20   ` Nordlöw
2008-10-06 11:39 ` Sergei
2008-10-06 11:50 ` Andreas Politz
2008-10-06 12:14   ` Nordlöw
2008-10-06 14:27     ` Xah
2008-10-06 15:24       ` Andreas Politz
2008-10-07  2:53         ` Xah

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).