ดังนั้นเมื่อฉันต้องการสร้างไฟล์ใหม่โดยใช้คำสั่ง: e ฉันไม่ต้องการระบุเส้นทางทั้งหมดเพียงแค่ชื่อไฟล์ใหม่ มันสามารถทำได้?
ดังนั้นเมื่อฉันต้องการสร้างไฟล์ใหม่โดยใช้คำสั่ง: e ฉันไม่ต้องการระบุเส้นทางทั้งหมดเพียงแค่ชื่อไฟล์ใหม่ มันสามารถทำได้?
คำตอบ:
ตามที่แนะนำไปแล้วคุณสามารถใช้ autochdir ซึ่งจะเปลี่ยนเป็นไดเร็กทอรีของไฟล์ที่คุณเปิดตัวเลือกอื่นคือ
:cd mydirectory
ซึ่งจะเปลี่ยนไดเร็กทอรี อาจเป็นเส้นทางสัมบูรณ์หรือสัมพัทธ์ก็ได้ดังนั้น:cd ..
จะเลื่อนขึ้นหนึ่งระดับ หรือคุณสามารถใช้:cd %:h
ซึ่งจะเปลี่ยนเป็นไดเร็กทอรีที่มีไฟล์ปัจจุบันอยู่ แต่ไม่ต้องตั้งค่า autochdir
:cd
จะเปลี่ยนไดเร็กทอรีเป็นโฮมไดเร็กทอรีของคุณ (หรือบน windows พิมพ์ไดเร็กทอรีปัจจุบัน)
:cd -
จะเปลี่ยนไดเร็กทอรีเป็นไดเร็กทอรีก่อนหน้าที่คุณเยี่ยมชม
%
แปลเป็นชื่อไฟล์ปัจจุบันรวมถึงพา ธ:
เพิ่มตัวปรับแต่งh
เป็น head คือพา ธ ขึ้นไปยังตัวคั่นพา ธ สุดท้ายซึ่งไม่รวมชื่อไฟล์เอง
นอกจากนี้หากคุณกำลังเรียกดูระบบไฟล์ด้วย netrw file explorer คุณสามารถตั้งค่าไดเร็กทอรีปัจจุบันได้โดยกดปุ่ม c
set autochdir
เพื่อทำให้เอ'c' key
ฟเฟกต์ในเชลล์เพื่อให้คุณสามารถใช้!command args
ภายใต้คำสั่งเปลี่ยน
ลองเพิ่มที่คุณset autochdir
.vimrc
หากคุณต้องการเปลี่ยนเพียงครั้งเดียวให้ใช้:cd
(หรือ:cd!
บังคับ)
cnoremap cd. lcd %:p:h
และnnoremap ,cd :cd %:p:h<CR>:pwd<CR>
แทน
'c' key
ใน netrw file explorer เพื่อมาพร้อมกับสิ่งนี้
ฉันไม่รู้ว่าเกิดอะไรขึ้นกับ vim ฉันต้องการไดเร็กทอรีที่ฉันเริ่มต้นเป็นกลุ่มเป็นปัจจุบัน
ฉันได้ทำตามเคล็ดลับเกี่ยวกับ autochd ด้านบนแล้วและตั้งค่าเป็น noautcd ใน. vimrc ของฉัน
ฉันยังไม่ได้ทำ แต่ฉันกำลังจะเริ่มเป็นกลุ่มแบบนี้นับจากนี้:
vim —cmd 'cd `pwd`'
ที่จะทำให้ติดทำเนียบปัจจุบัน!
ด้วยnetrw:
นอกเหนือไปจากการกดcกุญแจสำคัญในการตั้งค่าไดเรกทอรีปัจจุบันคุณยังอาจทำให้:
let g:netrw_keepdir= 0
ในของคุณ.vimrc
; ซึ่งหมายความว่าnetrw
จะทำให้ไดเร็กทอรีการเรียกดูเหมือนกับไดเร็กทอรีปัจจุบัน
การเพิ่มสิ่งนี้ใน.vimrc
การเปลี่ยนแปลงการทำงานของ Vim โดยอัตโนมัติไปยังไฟล์ปัจจุบัน:
autocmd BufEnter * silent! :lcd%:p:h
set autochdir
เช่นกัน :-)