¿Qué es .netrwhist?

122

Cuando edito archivos en mi ~/.vim, el .netrwhistarchivo también se cambia misteriosamente.

Su contenido:

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

¿Qué hace este archivo? ¿Es importante?

Lai Yu-Hsuan
fuente

Respuestas:

118

netrw es una especie de plugin / script de vim que admite la lectura y escritura de archivos en redes. .netrwhistes un archivo histórico que mantiene todos los directorios que se modificaron. Entonces, cada vez que modifique el contenido ~/.vim, agrega una entrada en.netrwhist

Una muestra .netrwhistes como se muestra

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 el número máximo de directorios modificados que almacena en el archivo histórico. es decir, tamaño máximo del historial. netrw_dirhist_cntindica el recuento actual del historial de directorios modificados.

Si desea deshabilitar netrw para generar un archivo de historial, vea esto .

Pavan Manjunath
fuente
1
Bien, pero ... ¿por qué netrw mantiene un archivo de historial? Si lo elimino automáticamente como lo sugiere su enlace, ¿qué se rompe?
Han Seoul-Oh
1
Relacionado, si está destinado a archivos remotos , ¿por qué está grabando rutas para archivos locales?
zaTricky
13

Además, si uno se pone g:netrw_dirhistmaxa cero, netrw no guardará historial ni marcadores:

:let g:netrw_dirhistmax = 0

Sin embargo, hacer esto no hará que se eliminen archivos .netrwhisto .netrwbookarchivos anteriores .

user21497
fuente
1
@glts pero ... ¿cuál es la desventaja de que netrw no guarde marcadores de historial? ¿Qué tiene de diferente mi experiencia con Vim en su lugar?
Han Seoul-Oh
11

Además, en caso de que desee que vim respete las especificaciones del directorio base de XDG para evitar que su carpeta de inicio se llene de archivos dotfiles ~/.vim, es posible que desee dividir los archivos en caché y los archivos de historial de su configuración (que generalmente reside en el tiempo de ejecución camino). Por ejemplo, para almacenar .netrwhisten ~/.cache/vim, puede probar

let g:netrw_home=$XDG_CACHE_HOME.'/vim'
ayekat
fuente
Si su carpeta .vim está en otro lugar que no sea .vim, presumiblemente esta nueva ubicación está en la ruta de tiempo de ejecución de vim. g: netrw_home se establece en el primer directorio en el runtimepath por defecto, que a su vez es por defecto $ HOME / .vim. Entonces, si usted (ayekat) tiene su ruta de tiempo de ejecución configurada correctamente, no debería tener que modificar g: netrw_home.
user21497
@ user21497 Esto es cierto. Por otro lado, si desea separar su configuración de cosas como intercambiar archivos, deshacer archivos o (como aquí) netrwhist, configurar correctamente la ruta de tiempo de ejecución solo resuelve parcialmente el problema. Pero editaré la respuesta para que esto sea un poco más claro.
ayekat
3

Desde el nuevo manual de referencia:

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

En mi caso, la primera ruta runtimepathes ~/.vim(verifique con :echo &runtimepath). Estoy bien con eso, así que no necesito cambiar g:netrw_home.


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

Entonces, sí, let g:netrw_dirhistmax=0dejará de escribir en el archivo de historial.

ericbn
fuente