o que é .netrwhist?

122

Quando eu edito arquivos no meu ~/.vim, o .netrwhistarquivo também será misteriosamente alterado.

É conteúdo:

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

O que esse arquivo faz? É importante?

Lai Yu-Hsuan
fonte

Respostas:

118

O netrw é um tipo de plugin / script do vim que suporta a leitura e gravação de arquivos nas redes. .netrwhisté um arquivo de histórico que mantém todos os diretórios que foram modificados. Portanto, sempre que você modificar o conteúdo ~/.vim, adicione uma entrada em.netrwhist

Uma amostra .netrwhisté como mostrado

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_dirhistmaxindica o número máximo de diretórios modificados que ele armazena no arquivo de histórico. ou seja, Tamanho máximo do histórico. netrw_dirhist_cntindica a contagem atual do histórico de diretórios modificados.

Se você deseja desativar o netrw para gerar o arquivo de histórico, consulte isso .

Pavan Manjunath
fonte
1
OK, mas ... por que o netrw mantém um arquivo de histórico? Se eu o excluir automaticamente, conforme sugerido pelo seu link, o que será interrompido?
Han Seoul-Oh
1
Relacionado, se ele se destina a arquivos remotos , por que está gravando caminhos para arquivos locais?
zaTricky
13

Além disso, se alguém definir g:netrw_dirhistmaxcomo zero, o netrw não salvará histórico ou favoritos:

:let g:netrw_dirhistmax = 0

Fazer isso não causará nenhuma prévia .netrwhistou.netrwbook arquivos a serem excluídos, no entanto.

user21497
fonte
1
@glts mas ... qual é a desvantagem do netrw não salvar marcadores de histórico? O que há de diferente na minha experiência com o Vim?
Han Seoul-Oh
11

Além disso, caso você queira que o vim respeite as especificações do diretório base do XDG, a fim de impedir que sua pasta pessoal seja desarrumada por arquivos de ponto ~/.vim, você pode dividir arquivos em cache e arquivos de histórico da sua configuração (que geralmente reside no tempo de execução caminho). Assim, por exemplo, para armazenar .netrwhistem ~/.cache/vim, você pode querer tentar

let g:netrw_home=$XDG_CACHE_HOME.'/vim'
ayekat
fonte
Se a sua pasta .vim estiver em algum lugar que não seja .vim, presumivelmente esse novo local estará no caminho de execução do vim. g: netrw_home é definido como o primeiro diretório no caminho de execução por padrão, que por sua vez é por padrão $ HOME / .vim. Portanto, se você (ayekat) tiver seu caminho de tempo de execução configurado corretamente, não precisará modificar g: netrw_home.
user21497
@ user21497 Isso é verdade. Por outro lado, se você deseja separar sua configuração de coisas como arquivos de troca, desfazer arquivos ou (como aqui) netrwhist, definir corretamente o caminho de tempo de execução resolve parcialmente o problema. Mas vou editar a resposta para deixar isso um pouco mais claro.
precisa saber é
3

No manual de referência 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'|.

No meu caso, o primeiro caminho runtimepathé ~/.vim(verifique com :echo &runtimepath). Eu sou bom nisso, então não preciso mudar g:netrw_home.


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

Então, sim, let g:netrw_dirhistmax=0parará de gravar no arquivo de histórico.

ericbn
fonte