什么是.netrwhist?


122

当我在中编辑文件时~/.vim.netrwhist文件也会神秘地更改。

内容:

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

该文件有什么作用?这非常重要吗?

Answers:


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生成历史文件,请参见this


1
可以,但是... netrw为什么要维护历史记录文件?如果我按照您的链接的建议自动删除了,有什么坏处?
汉城汉城

1
相关,如果要用于远程文件,为什么要记录本地文件的路径?
zaTricky

13

此外,如果将其设置g:netrw_dirhistmax为零,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 2014年

@ user21497这是真的。另一方面,如果希望将配置与交换文件,撤消文件或(如此处)分开netrwhist,则正确设置运行时路径只能部分解决问题。但我将编辑答案以使其更加清楚。
ayekat 2014年

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将停止写入历史文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.