Подтвердить что ты не робот

Очистить определенные критерии от файла .viminfo

Как я могу удалить определенные критерии из моего .viminfo файла?

Я хочу очистить историю командной строки, метки файлов, jumplist и т.д.

Однако, я хочу сохранить историю строки поиска.

Есть ли способ сделать это?

4b9b3361

Ответ 1

Я могу придумать 3 способа сделать это.

1. Автоматически

  • Запустите Vim,

  • Тип: :set viminfo='0,:0,<0,@0,f0

    • '0 означает, что метки не будут сохранены.
    • :0 означает, что история командной строки не будет сохранена.
    • <0 означает, что регистры не будут сохранены.
    • @0 означает, что история входных строк не будет сохранена.
    • f0 означает, что метки не будут сохранены.
    • no % означает, что список буфера не будет сохранен
    • no / означает, что история поиска будет сохранена

    Эти параметры верны в Vim 7.2, но могут отличаться в других версиях. Для получения более подробной информации о формате строки viminfo запустите :h 'viminfo'

  • Выход из Vim. Он сохранит новую версию файла .viminfo, содержащую только ту информацию, которую вы хотите сохранить.

2. Вручную

  • Откройте файл .viminfo в vim,

  • :set viminfo=, чтобы отключить автоматическое сохранение информации в файле .viminfo. Если вы этого не сделаете, Vim перезапишет все ваши изменения, когда вы уйдете,

  • Удалите все, что вы не хотите (возможно, используя ответ Johnsyweb, или просто удалив строки с помощью ручных команд редактирования), сохраните файл, и выйти из vim,

3. В другом редакторе

Измените файл .viminfo в другом текстовом редакторе и просто удалите все, что вам не нужно,

Ответ 2

Откройте файл .viminfo.

Следующая команда удалит все строки, которые не являются пустыми, комментариями или историей поиска:

:v/^\([#/?]\|$\)/d

@Rich answer поможет вам не перезаписывать эти строки.

Ответ 3

Вы можете использовать vim самостоятельно, чтобы изменить файл, и ваши изменения останутся на месте, если вы вызовете это следующим образом:

$ vim -i NONE ~/.viminfo

Запуск vim с опцией -i устанавливает, какой файл viminfo использовать для этого сеанса. Специальное значение NONE означает, что ничего не сохраняется вообще. Это может быть удобно для редактирования других автоматически генерируемых файлов или конфиденциальных данных.

От man vim:

-i {viminfo}
При использовании файла viminfo эта опция задает имя файла/ для использования вместо стандартного ~/.viminfo. Это также можно использовать для пропустите использование файла viminfo, указав имя NONE.

Ответ 4

У VIM нет встроенной команды для этого задания. Но вы можете сделать это в оболочке с "grep". Например, следующая команда очистит историю командной строки, отметки файла, Jumplist:

bash $ grep -v "^[:'-]" .viminfo > .viminfo_clear
bash $ cp .viminfo_clear .viminfo

Если вы откроете .viminfo, вы обнаружите, что история командной строки запускается с помощью ":", отметка файла начинается с "'", а jumplist запускается с "-".

Ответ 5

Скопируйте полезную часть и удалите .viminfo, затем откройте/закройте Vim. Он будет регенерировать .viminfo. Затем скопируйте полезную часть назад.