จะดูและแก้ไขไฟล์ค่าที่คั่นด้วยตัวคั่นขนาดใหญ่ได้อย่างไร?


14

ฉันใช้csv-modeเพื่อแก้ไขไฟล์ CSV ขนาดเล็กถึงขนาดกลาง แต่เมื่อเร็ว ๆ นี้ฉันได้ทำงานกับไฟล์ขนาดใหญ่ที่มีมากกว่า 40,812 รายการ csv-modeการดิ้นรนเพื่อจัดตำแหน่งและนำทางตารางและช้าเกินไปที่จะใช้งานได้ตามที่เป็นอยู่ ในการเปรียบเทียบ LibreOffice Calc สามารถซิปไฟล์ได้

มีวิธีง่ายๆในการcsv-modeจัดการกับตารางขนาดใหญ่หรือมีวิธีการที่ดีกว่าหรือไม่?

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

นี่คือไฟล์ตัวอย่าง ฉันพยายามทำให้มันใหญ่ แต่ไม่ใหญ่จนเกินไปจะทำให้ Emacs หยุดทำงานในคอมพิวเตอร์รุ่นเก่า


3
การแก้ไขตารางไม่ใช่จุดแข็งของ Emacs ในปัจจุบัน ฉันหวังว่ามันจะเป็น ฉันไม่จำเป็นต้องใช้สเปรดชีตเฉพาะ
wdkrnls

2
ไม่ใช่คำตอบระยะสั้น แต่คุณอาจต้องการคำตอบM-x report-emacs-bugโดยมีสูตรในการทำให้ช้าลง csv-modeอาจมีเป็นจำนวนมากห้องพักสำหรับการปรับปรุงใน
สเตฟาน

3
คุณมีไฟล์ตัวอย่างที่แสดงให้เห็นถึงปัญหาหรือไม่
Wilfred Hughes

ใช่ฉันทำ เพิ่มไปยังคำถาม
holocronweaver

คำตอบ:


12

ด้วยcsv-modeฉันสามารถดูล่าช้าบางคนที่มีไฟล์ของคุณ แต่เพียงด้วยการเน้นไวยากรณ์ที่เปิดใช้งาน หลังจากปิดการใช้งานแบบอักษรด้วยM-x font-lock-modeมันทำงานได้โดยไม่มีปัญหา

หากต้องการปิดใช้งานอย่างถาวรเพื่อcsv-modeเพิ่มในการกำหนดค่าของคุณ:

(add-hook 'csv-mode-hook (lambda () (font-lock-mode -1))

หรือถ้าคุณเป็นผู้ใช้แพ็คเกจใช้งาน:

(use-package csv-mode
  :mode ("\\.csv\\'" . csv-mode)
  :init (add-hook 'csv-mode-hook (lambda () (font-lock-mode -1)))
  :ensure t)

2
หลังจากที่ปิดการใช้งานfont-lock-mode, company-modeและทั้งคู่โหมดย่อยอื่น ๆ ความเร็วดีขึ้นมาก! ฉันคิดว่านี่เป็นความสำเร็จที่สำคัญ
holocronweaver

5
ฉันยังจะพิจารณาการตัดคำนี้เพื่อใช้กับไฟล์ขนาดใหญ่เท่านั้น:(when (> (point-max) some-large-number) (font-lock-mode -1))
Sean Allred
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.