ฉันสามารถใช้ vim เพื่อเปิดไฟล์ขนาดใหญ่ได้อย่างมีประสิทธิภาพหรือไม่?


16

บางครั้งฉันต้องเปิดไฟล์บันทึกหลาย GB ตอนนี้ฉันต้องใช้ tail เพื่อรับส่วนที่เหมาะสม แต่นั่นน่าเบื่อมาก

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

คำตอบ:


13

หากคุณต้องการดูไฟล์ให้ใช้ น้อยกว่า .

หากคุณต้องการตัดบางส่วนของไฟล์ออกให้ทำสิ่งนี้ (ภายใน น้อยกว่า ):

  1. ไปที่หน้า 1 ที่คุณสนใจ

  2. กดปุ่มต่างๆ ม. และ - หมายความว่า: ทำเครื่องหมายตำแหน่ง .

  3. ไปที่ตำแหน่งสุดท้ายของไฟล์ที่คุณสนใจ

  4. กดปุ่มต่างๆ | (ท่อ) และ - หมายความว่า: ไพพ์ทุกสิ่งระหว่างที่นี่และวางตำแหน่งให้กับคำสั่ง

  5. พิมพ์คำสั่งที่คุณต้องการส่งข้อมูลไป หากคุณต้องการคัดลอกข้อมูลนี้ไปยังบัฟเฟอร์ตัวแก้ไขเพียงใช้ vim - เป็นคำสั่ง (เครื่องหมายลบเป็นชื่อไฟล์หมายถึง ไฟล์ที่จะแก้ไขจะต้องอ่านจาก stdin )

หากคุณรู้ว่าคุณต้องการข้อมูลทั้งหมดจากตำแหน่งเฉพาะจนถึงจุดสิ้นสุดของไฟล์คุณสามารถทำได้เช่นกัน:

  1. ไปที่หน้า 1 ที่คุณสนใจ

  2. กดปุ่มต่างๆ | (ท่อ) และ $ - หมายความว่า: ไพพ์ทุกสิ่งระหว่างที่นี่และจุดสิ้นสุดของไฟล์กับคำสั่ง

  3. พิมพ์คำสั่งที่คุณต้องการให้ส่งข้อมูลไปที่ (เช่น cat >/tmp/myfile หรือ vim - )


1
ฉันไม่รู้ less สามารถทำได้ ขอบคุณ :)
icedwater

3

เช็คเอาท์ นี้ และ นี้ .

โดยทั่วไปตัวเลือกของคุณคือ:

  1. ให้เสียงเรียกเข้า ใหญ่ ไฟล์ สคริปต์ ลอง. มันปิดใช้งานคุณสมบัติบางอย่างเพื่อปรับปรุงการตอบสนองของ Vim เมื่อแก้ไขไฟล์ขนาดใหญ่
  2. แบ่งไฟล์เป็นกลุ่มย่อย ๆ ให้เล็กลงแก้ไขกลุ่มข้อมูลที่คุณสนใจ และต่อพวกมันให้กลับมารวมกันอีกครั้ง

3

ใช่เป็นกลุ่มสามารถเปิดได้ มาก ไฟล์ขนาดใหญ่ แต่เพื่อที่จะอนุรักษ์ความทรงจำบางสิ่งคุณควรจำไว้ก่อนที่จะทำเช่นนั้น:

  • ละเว้นประเภทไฟล์ (ไม่มีการเน้นไวยากรณ์และอื่น ๆ ) แม้ว่าในความเป็นไปได้ทั้งหมดมันจะไม่มีการเน้นไวยากรณ์สูงสำหรับไฟล์บันทึกเลย แต่เพียงเพื่อให้แน่ใจว่ามันจะไม่เริ่มผ่านพวกเขา
  • noswapfile (แน่นอนว่าคุณไม่ต้องการสำเนาของไฟล์ขนาดนั้น)
  • bufhidden = unload (บันทึกหน่วยความจำเมื่อไฟล์อื่นดู
  • buftype = nowritefile (อ่านอย่างเดียว)
  • undolevels = -1 (ไม่สามารถยกเลิกได้)

อาจมีตัวเลือกหนึ่งหรือสองตัวที่ฉันพลาดไป แต่สิ่งเหล่านี้อยู่ใน _vimrc ของฉันแล้ว


โปรดทราบว่า (1) มีปลั๊กอิน ( vim.org/scripts/script.php?script_id=1506 ) สำหรับการเปิดใช้งานตัวเลือกเหล่านี้โดยอัตโนมัติเมื่อมีการเปิดไฟล์ขนาดใหญ่และ (2) แม้ในโปรแกรมนี้การเปิดไฟล์ที่มีขนาดเกินสอง GB นั้นอาจเป็นปัญหาได้ดังนั้นฉันขอแนะนำให้ทำตาม "Ctrl-C "เคล็ดลับที่นี่: stackoverflow.com/a/19795855/1858225
Kyle Strand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.