Как я могу очистить определенные критерии из своего .viminfo файла?
Я хочу очистить историю командной строки, метки файла, jumplist, и т.д.
Однако я хочу сохранить историю строки поиска.
Там какой-либо путь состоит в том, чтобы сделать это?
Похоже, что в VIM нет встроенной команды для этой работы. Но вы можете сделать это в оболочке с помощью команды "grep". Например, следующая команда очистит историю командной строки, метки файлов и джамплист:
bash $ grep -v "^[:'-]" .viminfo > .viminfo_clear
bash $ cp .viminfo_clear .viminfo
Если вы откроете .viminfo, вы увидите, что история командной строки начинается с ":", метки файлов начинаются с "'", а джамплист начинается с "-".
Я могу предложить 3 способа сделать это.
Запустить Vim,
набрать: :set viminfo='0,:0,<0,@0,f0
'0
означает, что метки не будут сохранены: 0
означает, что история командной строки не будет сохранена<0
означает, что регистры не будут сохранены@0
означает, что история вводимой строки не будет сохранена. история строки не будет сохранена
f0
означает, что метки не будут сохранены%
означает, что буферный список не будет сохранен/
означает, что история поиска будет сохраненаЭти опции корректны в Vim 7. 2, но могут отличаться в других версиях. Для получения более подробной информации о формате строки viminfo выполните :h 'viminfo'
Выйдите из Vim. Это сохранит новую версию файла .viminfo, содержащую только ту информацию, которую вы хотите сохранить.
Откройте файл .viminfo в vim,
:set viminfo=
, чтобы отключить автоматическое сохранение информации в файл .viminfo. Если вы этого не сделаете, Vim перезапишет все ваши изменения, когда вы выйдете,
Удалите все, что вам не нужно (возможно, используя ответ Johnsyweb, или просто удалив строки с помощью команд ручного редактирования), сохраните файл и выйдите из vim,
Отредактируйте файл .viminfo в другом текстовом редакторе и просто удалите все ненужное,
Откройте файл .viminfo
.
Следующая команда удалит все строки, которые не являются пустыми, ни комментариями, ни историей поиска:
:v/^\([#/?]\|$\)/d
Ответ @ Rich поможет вам предотвратить повторное заполнение этих строк.