Welcome to the Power Users community on Codidact!
Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.
Delete command from Vim's command line history?
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.
1 answer
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"
2 comment threads