สร้างไฟล์ใหม่ในไดเร็กทอรีของไฟล์ที่เปิดในกลุ่ม?


93

ฉันพบว่าตัวเองอยู่ในตำแหน่งที่ต้องการสร้างไฟล์ใหม่ในไดเร็กทอรีเดียวกับไฟล์ที่เปิดอยู่ฉันจะสร้างไฟล์ใหม่ในไดเร็กทอรีของไฟล์ที่เปิดเป็นกลุ่มได้อย่างไร นอกจากนี้ยังมีสถานที่ที่ฉันสามารถเรียนรู้สิ่งเหล่านี้ได้ด้วยตัวเองหรือไม่? Googling ไม่ได้ช่วยอะไร


คุณกำลังพูดถึง vim โปรแกรมแก้ไขข้อความบน Linux หรือไม่?
ianaz

คำตอบ:


173

จากภายในกลุ่มไฟล์ใหม่ถูกสร้างขึ้นเช่นไฟล์ที่มีอยู่จะแก้ไขผ่านทางคำสั่งเหมือนหรือ:edit filename :split filenameยังคงไว้ในดิสก์ที่คุณต้อง (เลือกพิมพ์ในเนื้อหาและ) :writeยังคงมีอยู่พวกเขาผ่านทาง

เช่นเดียวกับพรอมต์คำสั่ง Vim มีแนวคิดของไดเร็กทอรีปัจจุบัน ( :pwdแสดงรายการ) เส้นทางไฟล์ทั้งหมดสัมพันธ์กับมัน คุณไม่จำเป็นต้องทำซ้ำเส้นทางไปยังไฟล์ปัจจุบันของคุณมีทางลัดที่ดีสำหรับพวกเขา: %หมายถึงไฟล์ปัจจุบัน:hเป็นตัวปรับแต่งสำหรับไดเร็กทอรีลบชื่อไฟล์ (cp. :help filename-modifiers) ดังนั้น,

:e %:h/filename
:w

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

หรือบางคนชอบให้ Vim เปลี่ยนเป็นไดเร็กทอรีของไฟล์ปัจจุบันเสมอ ซึ่งสามารถกำหนดค่าได้โดยการวาง

:set autochdir

ลงใน~/.vimrcไฟล์ของคุณ(ซึ่งอ่านได้จากการเริ่มต้นเป็นกลุ่ม) จากนั้นด้านบนจะกลายเป็นเพียง

:e filename
:w

:helpสุดท้ายเป็นกลุ่มที่มีดีในตัว เรียนรู้ที่จะนำทางและค้นหา!


2
autochdirเป็นขุยน่าเสียดายและฉันพบว่าไม่สามารถพึ่งพาได้ แต่ฉันใส่ autocmd ใน vimrc ของฉัน:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang

1
Dawg ต้องการโหวตคำตอบของคุณด้วย แต่ Dawg ไม่มีตัวแทนที่จำเป็น ขอบคุณสำหรับคำอธิบายที่เป็นลายลักษณ์อักษร!
Dawg

14

คุณควรลองใช้ปลั๊กอิน "nerdtree" ในหน้าต่าง nerdtree คุณพิมพ์คีย์ m และตัวเลือกการทำงานของไฟล์จะแสดงให้คุณเห็น


11

หากคุณต้องการสร้างไฟล์ใหม่และแสดงในหน้าต่างถัดจากไฟล์ปัจจุบันของคุณคุณสามารถลองสิ่งนี้:

:vsp newfile

vspย่อมาvertical splitและมันแยกหน้าจอในครึ่งหนึ่งแสดงไฟล์ปัจจุบันของคุณอื่น ๆ ที่แสดงไฟล์ใหม่ (ยังทำงานร่วมกับเพียงspซึ่งเป็นแยกแนวนอน)

ต่อ @ คิดเห็น MartinLyne vimข้างต้นนี้จะสร้างไฟล์ในไดเรกทอรีของแฟ้มที่คุณเปิด ในการปรับเปลี่ยนนี้คุณสามารถเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันได้ดังนี้:

:cd %:p:h

คำสั่งนี้เปลี่ยนไดเร็กทอรีการทำงานปัจจุบันเป็นไดเร็กทอรีของไฟล์ที่ใช้งานอยู่ซึ่งหมายความว่าการรันvspคำสั่ง (หรือคำสั่งใด ๆ ด้านบน) จะสร้างไฟล์ในไดเร็กทอรีนั้น


2

เมื่อคุณเปิดเป็นกลุ่มในตำแหน่งที่ไม่มีอยู่เช่น $ vim /etc/<some_folder/<next_folder>/file.cfg

จากนั้นเพื่อสร้างไดเรกทอรีใหม่ในขณะที่อยู่ในกลุ่มให้เรียกใช้ในโหมดปกติ:! mkdir -p /etc/<some_folder/<next_folder>และบันทึกเอกสารของคุณตามปกติ:w :x ZZ(อะไรก็ได้ที่คุณต้องการ)

แค่นั้นแหละ


1

นี่สำหรับ Gvim! ป้อนสิ่งนี้เพื่อดูไดเร็กทอรีปัจจุบัน

:cd

จากนั้นเปลี่ยนด้วย

:cd desktop/somefolder

จากนั้นบันทึกหรือสร้างไฟล์ใหม่ที่นั่น

:enew asd.cpp

ตอนนี้ดูไฟล์อีกครั้ง

:cd

0

ฉันไปงานปาร์ตี้ค่อนข้างช้า แต่อีกทางเลือกหนึ่งคือการเปิด NERDtree ด้วย:Eหรือ:Explore(หรือทางเลือกอื่นที่แยกออก:Vexplore/ :Sexplore== :Vex/ :Sex)

ใน NerdTree คุณสามารถสร้างไฟล์ใหม่%และพิมพ์ชื่อ มันจะเปิดไฟล์โดยอัตโนมัติและสร้างขึ้นหลังจากที่คุณ:w/ บันทึก

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