Skip to main content
5 of 6
added 43 characters in body
doraemon
  • 1.7k
  • 12
  • 27

How to remove entries from v:oldfiles list in neovim

I renamed a big folder that contains a lot of files I recently edited. After changing the name, my neovim's v:oldfiles list contains the old names that is no longer accessible. How can I clean the list or fix the list to reflect the renaming.

I use fzf to access the mru files. I tried to set the variable directly but it doesn't work


I followed the selected answer to solve the problem for neovim. But when I write the file, even without any change and directly do :w, I encounter the following error and have no idea how to solve it.

Error detected while processing function 
shada#get_binstrings[1]..shada#strings_to_sd[9]..
<SNR>184_shada_convert_strings[87]..
<SNR>184_shada_eval[1]..msgpack#eval:
line   65: 
E716: Key not present in Dictionary: "py
E116: Invalid arguments for function add
Error detected while processing BufWriteCmd Auto commands for "*.shada": 
E686: Argument of writefile() must be a List

Update The error is reported to neovim.

A possible fix is to change line 609 of runtime/autoload/msgpack.vim from

elseif s =~# '-\?\%(inf\|nan\)'

to

elseif s =~# '^-\?\(inf\|nan\)$'

The code affects all versions of neovim.

doraemon
  • 1.7k
  • 12
  • 27