co to jest .netrwhist?

122

Kiedy edytuję pliki w moim ~/.vim, .netrwhistplik również w tajemniczy sposób zostanie zmieniony.

Treść:

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

Co robi ten plik? Czy to ważne?

Lai Yu-Hsuan
źródło

Odpowiedzi:

118

netrw to rodzaj wtyczki / skryptu vim, który obsługuje odczytywanie i zapisywanie plików w sieci. .netrwhistto plik historii, który przechowuje wszystkie zmodyfikowane katalogi. Więc za każdym razem, gdy modyfikujesz zawartość ~/.vim, dodaje jeden wpis.netrwhist

Próbka .netrwhistjest taka, jak pokazano

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_dirhistmaxwskazuje maksymalną liczbę zmodyfikowanych katalogów, które przechowuje w pliku historii. tj. maksymalny rozmiar historii. netrw_dirhist_cntwskazuje aktualną liczbę w historii zmodyfikowanych katalogów.

Jeśli chcesz wyłączyć netrw, aby generował plik historii, zobacz to .

Pavan Manjunath
źródło
1
OK, ale ... dlaczego netrw utrzymuje plik historii? Co się zepsuje, jeśli usunę go automatycznie, zgodnie z sugestią Twojego linku?
Han Seoul-Oh
1
Powiązane, jeśli jest przeznaczone dla plików zdalnych , dlaczego rejestruje ścieżki do plików lokalnych?
zaTricky
13

Ponadto, jeśli g:netrw_dirhistmaxustawimy na zero, netrw nie zapisze historii ani zakładek:

:let g:netrw_dirhistmax = 0

Nie spowoduje to jednak usunięcia żadnych wcześniejszych plików .netrwhistani .netrwbookplików.

user21497
źródło
1
@glts ale ... jaka jest wada netrw bez zapisywania zakładek historii? Co różni się od mojego doświadczenia z używaniem Vima zamiast tego?
Han Seoul-Oh
11

Ponadto, jeśli chcesz, aby vim przestrzegał specyfikacji katalogu podstawowego XDG, aby zapobiec zaśmiecaniu twojego folderu domowego przez pliki dotfile ~/.vim, możesz chcieć podzielić pliki buforowane i pliki historii z konfiguracji (która zwykle znajduje się w środowisku wykonawczym ścieżka). Tak na przykład, aby przechowywać .netrwhistw ~/.cache/vim, można spróbować

let g:netrw_home=$XDG_CACHE_HOME.'/vim'
ayekat
źródło
Jeśli twój folder .vim jest gdzieś inny niż .vim, przypuszczalnie ta nowa lokalizacja znajduje się w runtimepath vima. g: netrw_home jest domyślnie ustawiony na pierwszy katalog w runtimepath, który z kolei jest domyślnie $ HOME / .vim. Więc jeśli (ayekat) masz poprawnie skonfigurowaną ścieżkę runtimepath, nie powinieneś musieć modyfikować g: netrw_home.
user21497
@ user21497 To prawda. Z drugiej strony, jeśli chcesz oddzielić konfigurację od takich rzeczy, jak pliki wymiany, pliki cofania lub (jak tutaj) netrwhist, prawidłowe ustawienie ścieżki runtimepath tylko częściowo rozwiązuje problem. Ale poprawię odpowiedź, aby było to trochę jaśniejsze.
ayekat
3

Z instrukcji obsługi sieci:

                        *.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'|.

W moim przypadku pierwsza ścieżka runtimepathto ~/.vim(sprawdź :echo &runtimepath). Jestem w tym dobry, więc nie muszę się zmieniać g:netrw_home.


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

Więc tak, let g:netrw_dirhistmax=0przestanie zapisywać do pliku historii.

ericbn
źródło