.netrwhist là gì?


122

Khi tôi chỉnh sửa tệp trong tệp của mình ~/.vim, .netrwhisttệp cũng sẽ bị thay đổi một cách bí ẩn.

Nội dung của nó:

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

Tập tin này làm gì? Nó quan trọng?

Câu trả lời:


118

netrw là một loại plugin / script vim hỗ trợ đọc và ghi tệp trên các mạng. .netrwhistlà một tệp lịch sử lưu giữ tất cả các thư mục đã được sửa đổi. Vì vậy, bất cứ khi nào bạn sửa đổi nội dung của ~/.vimnó, hãy thêm một mục vào.netrwhist

Một mẫu .netrwhistnhư được hiển thị

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_dirhistmaxcho biết số lượng tối đa các thư mục đã sửa đổi mà nó lưu trữ trong tệp lịch sử. tức là Kích thước lịch sử tối đa. netrw_dirhist_cntcho biết số lượng lịch sử hiện tại của các thư mục đã sửa đổi.

Nếu bạn muốn tắt netrw để tạo tệp lịch sử, hãy xem phần này .


1
OK nhưng ... tại sao netrw duy trì một tệp lịch sử? Nếu tôi tự động xóa nó theo đề xuất của liên kết của bạn, điều gì sẽ xảy ra?
Han Seoul-Oh

1
Có liên quan, nếu nó dành cho các tệp từ xa , tại sao nó lại ghi đường dẫn cho các tệp cục bộ?
zaTricky

13

Ngoài ra, nếu một người đặt g:netrw_dirhistmaxthành 0, netrw sẽ không lưu lịch sử hoặc dấu trang:

:let g:netrw_dirhistmax = 0

Tuy nhiên, làm điều này sẽ không làm cho bất kỳ tệp trước .netrwhisthoặc .netrwbooktệp nào bị xóa.


1
@ hậu nhưng ... nhược điểm của việc netrw không lưu dấu trang lịch sử là gì? Thay vào đó, trải nghiệm của tôi khi sử dụng Vim có gì khác?
Han Seoul-Oh

11

Ngoài ra, trong trường hợp bạn muốn vim tôn trọng các thông số kỹ thuật của thư mục cơ sở XDG để ngăn thư mục chính của bạn bị phân tán bởi ~/.vimcác tệp dotfiles như , bạn có thể muốn tách các tệp được lưu trong bộ nhớ cache và tệp lịch sử khỏi cấu hình của mình (thường nằm trong thời gian chạy con đường). Vì vậy, ví dụ, để lưu trữ .netrwhisttrong ~/.cache/vim, bạn có thể muốn thử

let g:netrw_home=$XDG_CACHE_HOME.'/vim'

Nếu thư mục .vim của bạn ở đâu đó không phải .vim, có lẽ vị trí mới này nằm trên đường dẫn thời gian chạy của vim. g: netrw_home được đặt thành thư mục đầu tiên trên đường chạy thời gian chạy theo mặc định, theo mặc định là $ HOME / .vim. Vì vậy, nếu bạn (ayekat) đã thiết lập đường dẫn thời gian chạy của mình đúng cách, bạn không cần phải sửa đổi g: netrw_home.
user21497

@ user21497 Điều này đúng. Mặt khác, nếu bạn muốn tách cấu hình của mình khỏi những thứ như tệp hoán đổi, tệp hoàn tác hoặc (như ở đây) netrwhist, việc đặt đúng đường dẫn thời gian chạy chỉ giải quyết một phần vấn đề. Nhưng tôi sẽ chỉnh sửa câu trả lời để làm cho điều này rõ ràng hơn một chút.
ayekat

3

Từ sổ tay tham khảo 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'|.

Trong trường hợp của tôi, đường dẫn đầu tiên vào runtimepath~/.vim(kiểm tra với :echo &runtimepath). Tôi tốt với điều đó, vì vậy tôi không cần phải thay đổi g:netrw_home.


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

Vì vậy, vâng, let g:netrw_dirhistmax=0sẽ ngừng ghi vào tệp lịch sử.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.