что такое .netrwhist?


122

Когда я редактирую файлы в моем ~/.vim, .netrwhistфайл тоже загадочным образом изменялся.

Это содержание:

let g:netrw_dirhistmax  =10
let g:netrw_dirhist_cnt =6
...and so on...

Что делает этот файл? Это важно?

Ответы:


118

netrw - это своего рода плагин / скрипт vim, который поддерживает чтение и запись файлов по сети. .netrwhistэто файл истории, в котором хранятся все измененные каталоги. Поэтому всякий раз, когда вы изменяете его содержимое, ~/.vimдобавляется одна запись в.netrwhist

Образец .netrwhist, как показано

let g:netrw_dirhistmax  =10
let g:netrw_dirhist_cnt =6
let g:netrw_dirhist_1='/Users/wolever/EnSi/repos/web/env/web/lib/python2.6/site-packages/django'
let g:netrw_dirhist_2='/private/tmp/b/.hg/attic'
let g:netrw_dirhist_3='/Users/wolever/code/sandbox/pydhcplib-0.6.2/pydhcplib'
let g:netrw_dirhist_4='/Users/wolever/EnSi/repos/common/env/common/bin'
let g:netrw_dirhist_5='/Users/wolever/EnSi/repos/common/explode'
let g:netrw_dirhist_6='/Users/wolever/Sites/massuni-wiki/conf'

netrw_dirhistmaxуказывает максимальное количество измененных каталогов, которые он хранит в файле истории. т.е. максимальный размер истории. netrw_dirhist_cntуказывает текущее количество измененных каталогов в истории.

Если вы хотите отключить netrw для создания файла истории, посмотрите это .


1
Хорошо, но ... почему netrw поддерживает файл истории? Если я автоматически удалю его, как указано в вашей ссылке, что сломается?
Хан Сеул-О,

1
В связи с этим, если он предназначен для удаленных файлов, почему он записывает пути для локальных файлов?
zaTricky

13

Кроме того, если установить g:netrw_dirhistmaxзначение 0, netrw не сохранит историю или закладки:

:let g:netrw_dirhistmax = 0

Однако это не приведет к удалению каких-либо предыдущих файлов .netrwhistили .netrwbookфайлов.


1
@glts, но ... в чем обратная сторона netrw, которая не сохраняет закладки истории? Чем отличается мой опыт использования Vim вместо этого?
Хан Сеул-О,

11

Кроме того, если вы хотите, чтобы vim соблюдал спецификации базового каталога XDG, чтобы ваша домашняя папка не была засорена точечными файлами, например ~/.vim, вы можете разделить кэшированные файлы и файлы истории из своей конфигурации (которая обычно находится в среде выполнения дорожка). Так, например, для хранения .netrwhistв ~/.cache/vim, вы можете попробовать

let g:netrw_home=$XDG_CACHE_HOME.'/vim'

Если ваша папка .vim находится где-то в другом месте, кроме .vim, предположительно, это новое местоположение находится на пути выполнения vim. g: netrw_home по умолчанию устанавливается в первый каталог в пути выполнения, которым, в свою очередь, по умолчанию является $ HOME / .vim. Поэтому, если у вас (ayekat) правильно настроен путь выполнения, вам не придется изменять g: netrw_home.
user21497

@ user21497 Это правда. С другой стороны, если вы хотите отделить свою конфигурацию от таких вещей, как файлы подкачки, файлы отмены или (как здесь) netrwhist, правильная установка пути выполнения только частично решает проблему. Но я отредактирую ответ, чтобы было немного понятнее.
ayekat

3

Из справочного руководства netrw:

                        *.netrwhist*
See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots.  The file ".netrwhist" holds history when netrw (and vim) is not
active.  By default, it's stored on the first directory on the user's
|'runtimepath'|.

В моем случае, первый путь в runtimepathэто ~/.vim(проверка с :echo &runtimepath). Я хорошо с этим справляюсь, поэтому мне не нужно ничего менять g:netrw_home.


  *g:netrw_dirhistmax*            =10: controls maximum quantity of past
                                       history.  May be zero to supppress
                                       history.

Так что да, let g:netrw_dirhistmax=0перестану писать в файл истории.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.