* delete all whitespace (space) in a region
@ 2023-11-08 17:53 Uwe Brauer
2023-11-08 19:15 ` Manuel Giraud via Users list for the GNU Emacs text editor
0 siblings, 1 reply; 10+ messages in thread
From: Uwe Brauer @ 2023-11-08 17:53 UTC (permalink / raw)
To: help-gnu-emacs
Hi
I have constructs like
$\left[ \left( \partial_{t}\Phi \right)^{2} - \left\vert \nabla\Phi \right\vert^{2} \right]^{\frac{1+K}{2K}}$:
That contain to much ........
So I am looking for a region-wise command deleting all this .. With the result
$\left[\left(\partial_{t}\Phi\right)^{2}-\left\vert \nabla\Phi\right\vert^{2}\right]^{\frac{1+K}{2K}}$:
(defun my-delete-all-whitespace-region (beg end)
(interactive "r")
(query-replace " " "" nil beg end nil nil))
Seems to be a very simple solution, but maybe too simple?
Any comments?
Uwe Brauer
--
I strongly condemn Hamas heinous atrocities on Israel, especially the despicable pogroms.
I strongly condemn Putin's war of aggression against Ukraine.
I support to deliver weapons to Ukraine's military.
I support the NATO membership of Ukraine.
I support the EU membership of Ukraine.
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-08 17:53 delete all whitespace (space) in a region Uwe Brauer
@ 2023-11-08 19:15 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-11-09 2:24 ` tpeplt
0 siblings, 1 reply; 10+ messages in thread
From: Manuel Giraud via Users list for the GNU Emacs text editor @ 2023-11-08 19:15 UTC (permalink / raw)
To: help-gnu-emacs
Uwe Brauer <oub@mat.ucm.es> writes:
> Hi
>
> I have constructs like
> $\left[ \left( \partial_{t}\Phi \right)^{2} - \left\vert \nabla\Phi \right\vert^{2} \right]^{\frac{1+K}{2K}}$:
>
> That contain to much ........
>
> So I am looking for a region-wise command deleting all this .. With the result
> $\left[\left(\partial_{t}\Phi\right)^{2}-\left\vert \nabla\Phi\right\vert^{2}\right]^{\frac{1+K}{2K}}$:
>
> (defun my-delete-all-whitespace-region (beg end)
> (interactive "r")
> (query-replace " " "" nil beg end nil nil))
>
> Seems to be a very simple solution, but maybe too simple?
If you don't want to confirm for the replacements, you could instead do
this:
--8<---------------cut here---------------start------------->8---
(defun my-delete-all-whitespace-region (beg end)
(interactive "r")
(save-excursion
(goto-char beg)
(while (re-search-forward " " end t)
(replace-match ""))))
--8<---------------cut here---------------end--------------->8---
--
Manuel Giraud
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-08 19:15 ` Manuel Giraud via Users list for the GNU Emacs text editor
@ 2023-11-09 2:24 ` tpeplt
2023-11-09 2:43 ` Emanuel Berg
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: tpeplt @ 2023-11-09 2:24 UTC (permalink / raw)
To: Manuel Giraud via Users list for the GNU Emacs text editor
Cc: Manuel Giraud, Uwe Brauer
Manuel Giraud via Users list for the GNU Emacs text editor
<help-gnu-emacs@gnu.org> writes:
>
> If you don't want to confirm for the replacements, you could instead do
> this:
>
> (defun my-delete-all-whitespace-region (beg end)
> (interactive "r")
> (save-excursion
> (goto-char beg)
> (while (re-search-forward " " end t)
> (replace-match ""))))
Emacs 28 added the function ‘replace-string-in-region’.
(defun my-delete-all-whitespace-region (beg end)
(interactive "r")
(save-excursion
(replace-string-in-region " " "" beg end)))
--
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-09 2:24 ` tpeplt
@ 2023-11-09 2:43 ` Emanuel Berg
2023-11-13 16:02 ` Uwe Brauer
2023-11-09 5:34 ` tomas
2023-11-09 8:44 ` Uwe Brauer
2 siblings, 1 reply; 10+ messages in thread
From: Emanuel Berg @ 2023-11-09 2:43 UTC (permalink / raw)
To: help-gnu-emacs
tpeplt wrote:
> Emacs 28 added the function ‘replace-string-in-region’.
>
> (defun my-delete-all-whitespace-region (beg end)
> (interactive "r")
> (save-excursion
> (replace-string-in-region " " "" beg end)))
(defun delete-all-whitespace (&optional beg end)
(interactive
(when (use-region-p)
(list (region-beginning) (region-end)) ))
(or beg (setq beg (point-min)))
(or end (setq end (point-max)))
(save-mark-and-excursion
(replace-string-in-region " " "" beg end) ))
A pretty fancy interface to a one-liner function with
hardcoded data :)
--
underground experts united
https://dataswamp.org/~incal
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-09 2:24 ` tpeplt
2023-11-09 2:43 ` Emanuel Berg
@ 2023-11-09 5:34 ` tomas
2023-11-14 8:41 ` Andreas Röhler
2023-11-09 8:44 ` Uwe Brauer
2 siblings, 1 reply; 10+ messages in thread
From: tomas @ 2023-11-09 5:34 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 859 bytes --]
On Wed, Nov 08, 2023 at 09:24:53PM -0500, tpeplt wrote:
> Manuel Giraud via Users list for the GNU Emacs text editor
> <help-gnu-emacs@gnu.org> writes:
> >
> > If you don't want to confirm for the replacements, you could instead do
> > this:
> >
> > (defun my-delete-all-whitespace-region (beg end)
> > (interactive "r")
> > (save-excursion
> > (goto-char beg)
> > (while (re-search-forward " " end t)
> > (replace-match ""))))
A small optimisation would be to use the regexp " +", meaning one
or more spaces.
>
> Emacs 28 added the function ‘replace-string-in-region’.
>
> (defun my-delete-all-whitespace-region (beg end)
> (interactive "r")
> (save-excursion
> (replace-string-in-region " " "" beg end)))
To have this here, you'd have to "replace-regexp-in-region", of
course.
Cheers
--
t
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-09 2:24 ` tpeplt
2023-11-09 2:43 ` Emanuel Berg
2023-11-09 5:34 ` tomas
@ 2023-11-09 8:44 ` Uwe Brauer
2023-11-09 15:58 ` tpeplt
2 siblings, 1 reply; 10+ messages in thread
From: Uwe Brauer @ 2023-11-09 8:44 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 1055 bytes --]
>>> "t" == tpeplt <tpeplt@gmail.com> writes:
> Manuel Giraud via Users list for the GNU Emacs text editor
> <help-gnu-emacs@gnu.org> writes:
>>
>> If you don't want to confirm for the replacements, you could instead do
>> this:
>>
>> (defun my-delete-all-whitespace-region (beg end)
>> (interactive "r")
>> (save-excursion
>> (goto-char beg)
>> (while (re-search-forward " " end t)
>> (replace-match ""))))
> Emacs 28 added the function ‘replace-string-in-region’.
> (defun my-delete-all-whitespace-region (beg end)
> (interactive "r")
> (save-excursion
> (replace-string-in-region " " "" beg end)))
Ah, thanks, I did not know that
--
I strongly condemn Hamas heinous atrocities on Israel, especially the despicable pogroms.
I strongly condemn Putin's war of aggression against Ukraine.
I support to deliver weapons to Ukraine's military.
I support the NATO membership of Ukraine.
I support the EU membership of Ukraine.
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-09 8:44 ` Uwe Brauer
@ 2023-11-09 15:58 ` tpeplt
0 siblings, 0 replies; 10+ messages in thread
From: tpeplt @ 2023-11-09 15:58 UTC (permalink / raw)
To: help-gnu-emacs
Uwe Brauer <oub@mat.ucm.es> writes:
>
>> Emacs 28 added the function ‘replace-string-in-region’.
>
>> (defun my-delete-all-whitespace-region (beg end)
>> (interactive "r")
>> (save-excursion
>> (replace-string-in-region " " "" beg end)))
>
> Ah, thanks, I did not know that
If you want to see more of what has been added, see the NEWS file by
typing C-h n. Unfortunately, this file (for Emacs 28) is large (4000
lines) and the new function above is not mentioned until line 3540.
A new feature that was added Emacs 28 is the ‘shortdoc-display-group’.
Type:
M-x shortdoc-display-group <TAB>
to see a list of the groups for which shortdoc help is available. These
are only a subset of the functions that are available in Emacs.
Type:
M-x shortdoc-display-group <RET>
and then type "buffer" (no quotes) in response to the prompt:
Show summary for functions in: buffer
This will then list brief help/descriptions for many buffer-related
functions in a ‘shortdoc’ buffer, including ‘replace-string-in-region’.
--
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-09 2:43 ` Emanuel Berg
@ 2023-11-13 16:02 ` Uwe Brauer
0 siblings, 0 replies; 10+ messages in thread
From: Uwe Brauer @ 2023-11-13 16:02 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 1152 bytes --]
>>> "EB" == Emanuel Berg <incal@dataswamp.org> writes:
> tpeplt wrote:
>> Emacs 28 added the function ‘replace-string-in-region’.
>>
>> (defun my-delete-all-whitespace-region (beg end)
>> (interactive "r")
>> (save-excursion
>> (replace-string-in-region " " "" beg end)))
> (defun delete-all-whitespace (&optional beg end)
> (interactive
> (when (use-region-p)
> (list (region-beginning) (region-end)) ))
> (or beg (setq beg (point-min)))
> (or end (setq end (point-max)))
> (save-mark-and-excursion
> (replace-string-in-region " " "" beg end) ))
> A pretty fancy interface to a one-liner function with
> hardcoded data :)
Right, but well I would only use this function region wide never on the
whole buffer. That is why I prefer *(interactive "r")*
--
I strongly condemn Hamas heinous atrocities on Israel, especially the despicable pogroms.
I strongly condemn Putin's war of aggression against Ukraine.
I support to deliver weapons to Ukraine's military.
I support the EU and NATO membership of Ukraine.
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-09 5:34 ` tomas
@ 2023-11-14 8:41 ` Andreas Röhler
2023-11-14 9:33 ` Michael Heerdegen
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Röhler @ 2023-11-14 8:41 UTC (permalink / raw)
To: help-gnu-emacs
Am 09.11.23 um 06:34 schrieb tomas@tuxteam.de:
> On Wed, Nov 08, 2023 at 09:24:53PM -0500, tpeplt wrote:
>> Manuel Giraud via Users list for the GNU Emacs text editor
>> <help-gnu-emacs@gnu.org> writes:
>>> If you don't want to confirm for the replacements, you could instead do
>>> this:
>>>
>>> (defun my-delete-all-whitespace-region (beg end)
>>> (interactive "r")
>>> (save-excursion
>>> (goto-char beg)
>>> (while (re-search-forward " " end t)
>>> (replace-match ""))))
> A small optimisation would be to use the regexp " +", meaning one
> or more spaces.
>
>> Emacs 28 added the function ‘replace-string-in-region’.
>>
>> (defun my-delete-all-whitespace-region (beg end)
>> (interactive "r")
>> (save-excursion
>> (replace-string-in-region " " "" beg end)))
> To have this here, you'd have to "replace-regexp-in-region", of
> course.
>
> Cheers
BTW the code using replace-string-in-region and the form above are not
equivalent.
The latter updates the end, whereas the previous keeps the old limit,
which may do unexpected deletions.
Cheers,
Andreas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: delete all whitespace (space) in a region
2023-11-14 8:41 ` Andreas Röhler
@ 2023-11-14 9:33 ` Michael Heerdegen
0 siblings, 0 replies; 10+ messages in thread
From: Michael Heerdegen @ 2023-11-14 9:33 UTC (permalink / raw)
To: help-gnu-emacs
Andreas Röhler <andreas.roehler@easy-emacs.de> writes:
> The latter updates the end, whereas the previous keeps the old limit,
> which may do unexpected deletions.
Indeed. In such cases using markers is useful:
(unless (markerp end)
(setq end (copy-marker end)))
If you want to be kind to the gc, invalidate the marker at the end of
the function:
(move-marker end nil)
Michael.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-11-14 9:33 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-08 17:53 delete all whitespace (space) in a region Uwe Brauer
2023-11-08 19:15 ` Manuel Giraud via Users list for the GNU Emacs text editor
2023-11-09 2:24 ` tpeplt
2023-11-09 2:43 ` Emanuel Berg
2023-11-13 16:02 ` Uwe Brauer
2023-11-09 5:34 ` tomas
2023-11-14 8:41 ` Andreas Röhler
2023-11-14 9:33 ` Michael Heerdegen
2023-11-09 8:44 ` Uwe Brauer
2023-11-09 15:58 ` tpeplt
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).