From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 9c23de2e for ; Sat, 7 Mar 2020 11:47:55 +0000 (UTC) Received: (qmail 660 invoked by alias); 7 Mar 2020 11:47:45 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: List-Unsubscribe: X-Seq: 24720 Received: (qmail 3590 invoked by uid 1010); 7 Mar 2020 11:47:45 -0000 X-Qmail-Scanner-Diagnostics: from mout02.posteo.de by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.2/25738. spamassassin: 3.4.2. Clear:RC:0(185.67.36.66):SA:0(-4.3/5.0):. Processed in 2.134391 secs); 07 Mar 2020 11:47:45 -0000 X-Envelope-From: manfred.lotz@posteo.de X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at posteo.de designates 185.67.36.66 as permitted sender) Date: Sat, 7 Mar 2020 12:47:01 +0100 From: Manfred Lotz To: zsh-users@zsh.org Subject: Re: Deleting entries in history Message-ID: <20200307124701.23e1875b@hogwart> In-Reply-To: References: <20200306205400.58343f26@hogwart> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Fri, 6 Mar 2020 13:15:10 -0800 Bart Schaefer wrote: > On Fri, Mar 6, 2020 at 11:55 AM Manfred Lotz > 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. > Ok, this means it is best done directly after reboot when I open the first zsh shell. > 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. > OK, I can check this. > 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. Yep, I have those. > > 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. I already use zshaddhistory for some commands I don't want to see in the zsh history. Thanks. -- Manfred