zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: Manfred Lotz <ml_news@posteo.de>
Cc: Zsh-Users List <zsh-users@zsh.org>
Subject: Re: Deleting entries in history
Date: Fri, 6 Mar 2020 13:15:10 -0800	[thread overview]
Message-ID: <CAH+w=7aFqV_q6w8Qeq-nz=1O0J-gWBKTEXq7scitfTJVYQWpfw@mail.gmail.com> (raw)
In-Reply-To: <20200306205400.58343f26@hogwart>

On Fri, Mar 6, 2020 at 11:55 AM Manfred Lotz <ml_news@posteo.de> wrote:
>
> What is the proper way to delete entries in the history?
>
> Just load the history file in an editor, deleting things and save it?

The first thing to note is that when $SAVEHIST is nonzero, zsh will
typically update the file when the shell exits, so anything that is in
the runtime history of the current shell might reappear even after it
is deleted from the file.  I say "might" because this is affected by
the assorted setopts that control how the history is maintained.  The
only safe way to directly edit the history is to make sure no other
zsh is running that might rewrite it, and then set SAVEHIST=0 in your
current shell before doing anything else.

Once you are sure you have done that, then it should be OK to use an
editor on the history file.  Be aware that multi-line events (such as
"for" or "while" loops) are stored with lines terminated by backslash,
so if you start deleting a line that ends in backslash you need to
also delete all the adjacent lines that end in backslash, up to and
including the next following line that does NOT end in a backslash.
Single-line events never contain a backslash.

If you are using any of the setopts that store timestamped history
entries, each event will be prefixed by a ":" command that ends at the
next ";", with the timestamp between.  You should delete these along
with the event you want to remove, and avoid altering any that are on
other event lines.

All that said ... if the events you want to delete can all be matched
by some simple patterns, you might want to look into either a
zshaddhistory hook function, or a setting of the HISTORY_IGNORE
parameter.

  reply	other threads:[~2020-03-06 21:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-06 19:54 Manfred Lotz
2020-03-06 21:15 ` Bart Schaefer [this message]
2020-03-06 21:17   ` Bart Schaefer
2020-03-07 11:47   ` Manfred Lotz

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAH+w=7aFqV_q6w8Qeq-nz=1O0J-gWBKTEXq7scitfTJVYQWpfw@mail.gmail.com' \
    --to=schaefer@brasslantern.com \
    --cc=ml_news@posteo.de \
    --cc=zsh-users@zsh.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

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 NNTP newsgroup(s).