. netrwhist คืออะไร?


122

เมื่อฉันแก้ไขไฟล์ในไฟล์ ~/.vimที่.netrwhistไฟล์จะมีการเปลี่ยนแปลงไปอย่างลึกลับเกินไป

เนื้อหา:

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

ไฟล์นี้ใช้ทำอะไร? มันสำคัญหรือ?

คำตอบ:


118

netrw เป็นปลั๊กอิน / สคริปต์แบบกลุ่มที่รองรับการอ่านและเขียนไฟล์ข้ามเครือข่าย .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 ในการสร้างแฟ้มประวัติแล้วเห็นนี้


1
ตกลง แต่ ... ทำไม netrw ถึงรักษาไฟล์ประวัติไว้? ถ้าฉันลบมันอัตโนมัติตามที่ลิงค์ของคุณแนะนำจะเกิดอะไรขึ้น?
Han Seoul-Oh

1
ที่เกี่ยวข้องหากมีไว้สำหรับไฟล์ระยะไกลเหตุใดจึงบันทึกเส้นทางสำหรับไฟล์ในเครื่อง
zaTricky

13

นอกจากนี้หากตั้งค่าg:netrw_dirhistmaxเป็นศูนย์ netrw จะไม่บันทึกประวัติหรือบุ๊กมาร์ก:

:let g:netrw_dirhistmax = 0

อย่างไรก็ตามการทำเช่นนี้จะไม่ทำให้ไฟล์ก่อนหน้านี้.netrwhistหรือ.netrwbookไฟล์ถูกลบออกไป


1
@glts แต่ ... ข้อเสียของ netrw ไม่บันทึกบุ๊คมาร์คประวัติคืออะไร? ประสบการณ์การใช้ Vim แทนของฉันแตกต่างกันอย่างไร
Han Seoul-Oh

11

นอกจากนี้ในกรณีที่คุณต้องการให้ vim ปฏิบัติตามข้อกำหนดไดเร็กทอรีฐาน XDG เพื่อป้องกันไม่ให้โฟลเดอร์ภายในบ้านของคุณถูกทิ้งโดย dotfiles เช่น~/.vimคุณอาจต้องการแยกไฟล์แคชและไฟล์ประวัติออกจากการกำหนดค่าของคุณ (ซึ่งโดยปกติจะอยู่ในรันไทม์ เส้นทาง). ดังนั้นสำหรับตัวอย่างเช่นในการจัดเก็บ.netrwhistใน~/.cache/vimคุณอาจต้องการที่จะลอง

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

หากโฟลเดอร์. vim ของคุณอยู่ที่อื่นที่ไม่ใช่. vim ให้สันนิษฐานไว้ก่อนว่าตำแหน่งใหม่นี้อยู่บนรันไทม์พา ธ ของกลุ่ม g: netrw_home ถูกตั้งค่าเป็นไดเร็กทอรีแรกบน runtimepath โดยค่าเริ่มต้นซึ่งจะเป็นค่าเริ่มต้น $ HOME / .vim ดังนั้นหากคุณ (ayekat) ตั้งค่ารันไทม์พา ธ อย่างถูกต้องคุณไม่ควรต้องแก้ไข g: netrw_home
user21497

@ user21497 นี่คือเรื่องจริง ในทางกลับกันหากคุณต้องการแยกการกำหนดค่าของคุณออกจากสิ่งต่างๆเช่นไฟล์สลับไฟล์เลิกทำหรือ (ตามที่นี่) netrwhistการตั้งค่ารันไทม์พา ธ อย่างถูกต้องเพียงบางส่วนจะช่วยแก้ปัญหาได้ แต่ฉันจะแก้ไขคำตอบเพื่อให้ชัดเจนขึ้นอีกนิด
ayekat

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จะหยุดเขียนลงในไฟล์ประวัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.