ตัวเลือก 'เส้นทาง' เริ่มต้นของ Vim ซ้ำซ้อนหรือไม่


10

จากเอกสารช่วยเหลือของ Vim (ดู:) :help 'path':

สตริง 'path' (ค่าเริ่มต้นใน Unix: " .,/usr/include,,")

- หากต้องการค้นหาสัมพันธ์กับไดเรกทอรีของไฟล์ปัจจุบันให้ใช้:

:set path=.

หากต้องการค้นหาในไดเรกทอรีปัจจุบันให้ใช้สตริงว่างระหว่างเครื่องหมายจุลภาคสองตัว:

:set path=,,

ดูเหมือนว่า.และ,,ไม่มีความแตกต่างในตัวเลือก 'เส้นทาง' พวกเขาทั้งสองหมายถึงไดเรกทอรีปัจจุบัน

ฉันไม่เข้าใจว่าทำไมเราต้องใส่ทั้งคู่.และ,,ตัวเลือกเส้นทาง ความแตกต่างระหว่าง:set path=.และ:set path=,,คืออะไร?

คำตอบ:


14

"ไดเรกทอรีปัจจุบัน" และ "ไดเรกทอรีของไฟล์ปัจจุบัน" เป็นสองสิ่งที่แตกต่างกัน

"ไดเรกทอรีปัจจุบัน" เป็นค่าเริ่มต้นไดเรกทอรีที่คุณเริ่มต้นเป็นกลุ่ม คุณถามเสียงเรียกเข้าว่ามันคืออะไรด้วย:pwdและเปลี่ยนด้วย:cdหรือ:lcdหรือโดยการตั้งค่าautochdirตัวเลือก หากคุณไม่เปลี่ยนจะยังคงเหมือนเดิมจนกว่าคุณจะปิดเซสชันปัจจุบัน

ไดเรกทอรี "ของไฟล์ปัจจุบัน" เป็นสิ่งที่มันอ้างว่าเป็น หากไฟล์ปัจจุบันอยู่ใน "ไดเรกทอรีปัจจุบัน" ทั้งคู่มีค่าเท่ากัน หากไฟล์ปัจจุบันอยู่ในไดเรกทอรีอื่นพวกเขามีค่าที่แตกต่างกัน

สำหรับการpathที่จะเป็นประโยชน์ก็เป็นสิ่งจำเป็นเพื่อแก้ไขสถานการณ์ทั้งสองด้วยและ.,,

ตัวอย่าง:

$ cd /foo/bar/baz
$ vim filename
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar/baz
:e ../file
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar

7

ไดเรกทอรีของแฟ้มปัจจุบันและไดเรกทอรีปัจจุบันเป็นสองสิ่งที่แตกต่างอย่างสิ้นเชิง (ที่อาจในโอกาสมีค่าเดียวกัน)

พิจารณา:

cd /tmp; vim /etc/bash.bashrc

ถ้าฉันมีautochdir(หรือบางสิ่งบางอย่างที่คล้ายกัน) ชุดไดเรกทอรีปัจจุบันเป็นยังไดเรกทอรีของแฟ้มปัจจุบันคือ/tmp/etc

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