Как я могу удалить определенные критерии из моего .viminfo файла?
Я хочу очистить историю командной строки, метки файлов, jumplist и т.д.
Однако, я хочу сохранить историю строки поиска.
Есть ли способ сделать это?
Как я могу удалить определенные критерии из моего .viminfo файла?
Я хочу очистить историю командной строки, метки файлов, jumplist и т.д.
Однако, я хочу сохранить историю строки поиска.
Есть ли способ сделать это?
Я могу придумать 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 answer поможет вам не перезаписывать эти строки.
Вы можете использовать vim
самостоятельно, чтобы изменить файл, и ваши изменения останутся на месте, если вы вызовете это следующим образом:
$ vim -i NONE ~/.viminfo
Запуск vim
с опцией -i
устанавливает, какой файл viminfo
использовать для этого сеанса. Специальное значение NONE
означает, что ничего не сохраняется вообще. Это может быть удобно для редактирования других автоматически генерируемых файлов или конфиденциальных данных.
От man vim
:
-i {viminfo}
При использовании файла viminfo эта опция задает имя файла/ для использования вместо стандартного~/.viminfo
. Это также можно использовать для пропустите использование файла viminfo, указав имяNONE
.
У VIM нет встроенной команды для этого задания. Но вы можете сделать это в оболочке с "grep". Например, следующая команда очистит историю командной строки, отметки файла, Jumplist:
bash $ grep -v "^[:'-]" .viminfo > .viminfo_clear
bash $ cp .viminfo_clear .viminfo
Если вы откроете .viminfo, вы обнаружите, что история командной строки запускается с помощью ":", отметка файла начинается с "'", а jumplist запускается с "-".
Скопируйте полезную часть и удалите .viminfo, затем откройте/закройте Vim. Он будет регенерировать .viminfo. Затем скопируйте полезную часть назад.