จะบันทึกเป็นไฟล์ใหม่และทำงานกับไฟล์ต้นฉบับใน Vim ได้อย่างไร?


362

เมื่อใดก็ตามที่ฉันใช้ :savคำสั่งมันจะบันทึกไฟล์ด้วยชื่อใหม่และเปิดไฟล์ใหม่ที่เปิดในกลุ่ม

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


13
ฉันมาพร้อมกับคำถามตรงกันข้าม
cambunctious

4
@cambunctious Me ด้วย ฉัน googling vim "save as"และคำถามนี้สอนให้ฉันรู้ว่ามีสิ่ง:saveasที่ได้ผลเหมือนที่ฉันคาดไว้: บันทึกไฟล์ที่มีอยู่ด้วยชื่อใหม่และเปิดไฟล์ใหม่
Jacktose

คำตอบ:


526

ใช้:wคำสั่งด้วยชื่อไฟล์:

:w other_filename

78
นอกจากนี้ใช้:w %:h/other_filenameเพื่อเขียนไปยังชื่อไฟล์ในไดเรกทอรีเดียวกันกับไฟล์ที่เปิด
loevborg

2
@Ievborg เมื่อนั้นไม่ใช่กรณีที่? ฉันแค่: fname โดยไม่ต้องอ่านความคิดเห็นของคุณและพฤติกรรมที่ดูเหมือนจะเป็นค่าเริ่มต้น
เบลค

10
@ Cokemonkey11 มันไม่ใช่พฤติกรรมเริ่มต้นในกลุ่มที่จะมีที่ตั้งของไฟล์ปัจจุบันเหมือนกับไดเรกทอรีการทำงาน คุณอาจมีบางสิ่งในไฟล์ vimrc ที่ทำสิ่งนี้ให้คุณ ข้อมูลบางอย่างเพิ่มเติมสามารถดูได้ที่นี่vim.wikia.com/wiki/Set_working_directory_to_the_current_file
ดีเร็ก

8
ฉันเพิ่งยืนยันว่าไม่มี "%: h /" ไฟล์จะถูกบันทึกไว้ในไดเรกทอรีที่คุณอยู่เมื่อคุณเปิดเป็นกลุ่มไม่ใช่ไฟล์ต้นฉบับอยู่ที่ไหน ....
RVC

7
มันอาจมีประโยชน์ที่จะกล่าวถึงว่า:w other_filenameจะเขียนข้อมูลไปยังไฟล์other_filename เท่านั้นและไม่ใช่ไฟล์ปัจจุบัน
Ram Patra

270

ขอบคุณสำหรับคำตอบ ตอนนี้ฉันรู้แล้วว่ามี "วิธีประหยัด" สองวิธีใน Vim

สมมติว่าฉันกำลังแก้ไข hello.txt

  • : w world.txt จะเขียนเนื้อหาของ hello.txt ไปยังไฟล์ world.txt ในขณะที่รักษา hello.txt เป็นบัฟเฟอร์ที่เปิดอยู่ในกลุ่ม
  • : sav world.txtก่อนจะเขียนเนื้อหาของ hello.txt ลงในไฟล์ world.txt จากนั้นปิดบัฟเฟอร์ hello.txt ในที่สุดก็เปิด world.txt เป็นบัฟเฟอร์ปัจจุบัน

27
:savจะไม่ปิดบัฟเฟอร์เริ่มต้นมันจะซ่อนมัน โดยค่าเริ่มต้นบัฟเฟอร์ที่ซ่อนอยู่จะถูกยกเลิกการโหลด แต่สามารถแทนที่ได้ (พร้อมตัวเลือก 'ซ่อน' หรือ 'bufhidden')
ZyX

7
ดังนั้นใช่ ... :savอยู่ใกล้กับ "บันทึกเป็น" ฉันรู้
skytreader

8
จากที่เป็นกลุ่มของความช่วยเหลือ: :sav[eas][!] [++opt] {file}ดังนั้น:sav เป็น:saveasสั้นลงสำหรับ ในขณะที่เป็นทางลัดสำหรับ:w :[range]w[rite][!] [++opt] {file}และทุกอย่างอยู่ในคู่มือเพียงไม่กี่บรรทัดด้านบน / ล่าง
Atcold

23

หลังจากบันทึกไฟล์ใหม่ให้กด

Ctrl-6

นี่คือทางลัดไปยังไฟล์อื่น


2
สำหรับสิ่งที่คุ้มค่าการใช้ nvim 0.1.0 ภายใต้ OS X 10.10.5 จำเป็นต้องใช้ SHIFT-CTRL-6
Aaron Mendez

shift-ctrl-6 บน Vim เวอร์ชัน Homebrew ใน OS X 11
Mateusz Piotrowski

3

คำสั่งต่อไปนี้จะสร้างสำเนาในหน้าต่างใหม่ ดังนั้นคุณสามารถดูทั้งไฟล์ต้นฉบับและไฟล์ใหม่

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