Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs

Dashboard
Notifications
Mark all as read
Q&A

Delete command from Vim's command line history?

+4
−0

Sometimes I accidentally enter a command with a typo in Vim, e.g. :e!fil instead of :e!file.

As a consequence, the incorrect command clutters the history until it is evicted from the binary .viminfo file.

Can that incorrect entry be deleted from the command line history? How?

:help cmdline-history does not touch the subject.

I tried deleting the dirty entry from the command-line window (q:) but it does not actually get deleted from the history, only from that particular window.

Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Are you sure `.viminfo` is a binary file? I'm not a vim user, but having a look at one lying around, ... (5 comments)

1 answer

+4
−0

Although .viminfo is technically a binary file, some parts of it are actually plain text. From :help viminfo-read-write,

The viminfo file itself can be edited by hand too, although we suggest you start with an existing one to get the format right. It is reasonably self-explanatory once you're in there.

Since the help section also says

When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo file (it's actually merged with the existing one, if one exists).

I suggest editing .viminfo with a different editor, otherwise Vim might merge the sessions' information and restore the line that we are trying to delete.

Look for the "Command Line History" section and then delete the two lines corresponding to the incorrect entry, then save the file. In the example below, the lines marked with X should be deleted.

# Command Line History (newest to oldest):
:qa
|2,0,1634126783,,"qa"
:e
|2,0,1634126774,,"e"
:e!file
|2,0,1634126772,,"e!file"
:e!fil                     X
|2,0,1634126770,,"e!fil"   X
:vs
|2,0,1634126766,,"vs"
Why does this post require moderator attention?
You might want to add some details to your flag.

1 comment thread

Is .viminfo really a binary file? (2 comments)

Sign up to answer this question »

This community is part of the Codidact network. We have other communities too — take a look!

You can also join us in chat!

Want to advertise this community? Use our templates!

Like what we're doing? Support us! Donate