ฉันจะทำให้ Vim ใช้ชื่อไฟล์เริ่มต้นได้อย่างไรเมื่อไม่ได้รับชื่อไฟล์ใด ๆ


17

ฉันไม่ค่อยเปิดเลยถ้าvimไม่มีชื่อไฟล์ บ่อยครั้งที่ฉันต้องการทดสอบอะไรบางอย่างมักจะเป็นสคริปต์การโยนทิ้งอย่างรวดเร็วและฉันมักจะตั้งชื่อพวกเขาtest.sh(หรือตัวแปรอื่น ๆ เช่นtest.py) ฉันสามารถvimสมมติtest.shชื่อvimไฟล์ได้หรือไม่ถ้าฉันวิ่งโดยไม่มีชื่อไฟล์ ฉันมักจะต้องการใช้ชื่อแทน (เช่นvimsสำหรับvim test.shและvimpสำหรับvim test.pyหรือไปทั้งหมด:w test.sh) vimแต่ผมสงสัยว่ามีวิธีจากภายใน มันจะดียิ่งขึ้นถ้าผมสามารถ จำกัด นี้ไปยังไดเรกทอรีบางอย่างเช่นหรือ/tmp~/dev

คำตอบ:


10

ลองวางสิ่งนี้ไว้ที่ท้าย. vimrc ของคุณ (แก้ไขตามความเหมาะสม)

if @% == "" && getcwd() == "/tmp"
    :silent edit test.sh
endif

การตรวจสอบนี้ถ้าชื่อไฟล์ปัจจุบันเป็นที่ว่างเปล่า ( @%อ้างอิงชื่อไฟล์ปัจจุบัน) /tmpและการตรวจสอบถ้าไดเรกทอรีปัจจุบันเป็นกลุ่มเป็น คุณสามารถเพิ่มไดเรกทอรีอื่น ๆ ได้เช่นกัน

(getcwd() == "/tmp" || getcwd() == "~/dev")

จากนั้นจะทำการแก้ไข test.sh หากไฟล์นั้นมีอยู่แล้วไฟล์จะทำการโหลด มิฉะนั้นคุณจะเริ่มบัฟเฟอร์ใหม่ด้วยชื่อนั้นและไฟล์จะถูกสร้างขึ้นหากคุณเขียนมัน

ฉันเงียบเพื่อระงับข้อความต่อไปนี้ระหว่างการเริ่มต้น:

"test.sh" [New File]
Press ENTER or type command to continue

5

การแก้ไขคำตอบของ John อาจมีประโยชน์:

if @% == "" && getcwd() == "/tmp"
    :silent edit `=glob("test\.*", 1, 1)[0]`
endif

test.ที่เปิดไฟล์แรกซึ่งเริ่มต้นด้วย

แทนที่จะเป็นไฟล์แรกถ้าคุณต้องการเปิดไฟล์ที่ตรงกันอื่นให้ทำ:

if @% == "" && getcwd() == "/tmp"
    for i in glob("test\.*", 1, 1)
        :silent edit `=i`
    endfor
endif
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.