什么是.netrwhist?

Lai*_*uan 115 vim netrw

当我编辑文件时~/.vim,.netrwhist文件也会神秘地改变.

它的内容是:

let g:netrw_dirhistmax  =10
let g:netrw_dirhist_cnt =6
...and so on...
Run Code Online (Sandbox Code Playgroud)

这个文件做什么用的?那很重要么?

Pav*_*ath 113

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'
Run Code Online (Sandbox Code Playgroud)

netrw_dirhistmax表示它存储在历史文件中的最大修改目录数.即最大历史大小.netrw_dirhist_cnt表示已修改目录的当前历史记录计数.

如果要禁用netrw生成历史文件,请查看此内容.

  • 好的,但是...为什么 netrw 维护历史文件?如果我按照您的链接的建议自动删除它,会发生什么问题? (3认同)
  • 相关的是,如果它是用于*远程*文件,为什么它要记录本地文件的路径? (3认同)

use*_*497 12

此外,如果设置g:netrw_dirhistmax为零,netrw将不保存历史记录或书签:

:let g:netrw_dirhistmax = 0
Run Code Online (Sandbox Code Playgroud)

但是,这样做不会导致任何先前.netrwhist.netrwbook文件被删除.

  • @glts 但是...netrw 不保存历史书签的缺点是什么?我使用 Vim 的体验有何不同? (2认同)

aye*_*kat 8

此外,如果您希望vim尊重XDG基本目录规范以防止您的主文件夹被像dotfiles一样乱丢~/.vim,您可能希望从配置中拆分缓存文件和历史文件(通常驻留在运行时路径).因此,例如,存储.netrwhist~/.cache/vim,你可能想尝试

let g:netrw_home=$XDG_CACHE_HOME.'/vim'
Run Code Online (Sandbox Code Playgroud)


eri*_*cbn 5

来自 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'|.
Run Code Online (Sandbox Code Playgroud)

就我而言,第一个路径runtimepath~/.vim(检查:echo &runtimepath)。我对此很满意,所以我不需要改变g:netrw_home


  *g:netrw_dirhistmax*            =10: controls maximum quantity of past
                                       history.  May be zero to supppress
                                       history.
Run Code Online (Sandbox Code Playgroud)

所以,是的,let g:netrw_dirhistmax=0将停止写入历史文件。