Làm thế nào để xem và chỉnh sửa các tệp giá trị phân tách lớn?


14

Tôi đã sử dụng csv-modeđể sửa đổi các tệp CSV cỡ nhỏ đến trung bình, nhưng gần đây tôi đã làm việc với các tệp lớn chứa hơn 40.812 mục. csv-modeđấu tranh để sắp xếp và điều hướng các bảng, và quá chậm để có thể sử dụng được. Để so sánh, LibreOffice Calc có thể nén qua tệp.

Có một cách đơn giản để csv-modexử lý các bảng lớn, hoặc có một cách tiếp cận tốt hơn có sẵn?

Tôi biết một câu hỏi Stack Overflow liên quan . Giải pháp của nó là chỉ căn chỉnh phần đệm trong cửa sổ có thể nhìn thấy, nhưng điều này không giải quyết được sự chậm chạp trong trường hợp của tôi.

Đây là một tập tin ví dụ. Tôi đã cố gắng làm cho nó lớn, nhưng không lớn đến mức nó sẽ đóng băng Emacs trên các máy tính cũ.


3
Chỉnh sửa bảng không phải là một trong những thế mạnh hiện tại của Emacs. Tôi ước nó như vậy. Tôi thà không bao giờ phải sử dụng một bảng tính chuyên dụng.
wdkrnls

2
Không phải là một câu trả lời ngắn hạn, nhưng bạn có thể muốn M-x report-emacs-bugvề nó, lý tưởng nhất là với một công thức để tái tạo sự chậm lại. Có lẽ có rất nhiều chỗ để cải thiện csv-mode.
Stefan

3
Bạn có một tập tin mẫu chứng minh vấn đề?
Wilfred Hughes

Vâng vâng, tôi làm. Thêm vào câu hỏi.
holocronweaver

Câu trả lời:


12

Với csv-modetôi có thể thấy một số độ trễ với tệp của bạn, nhưng chỉ khi bật tính năng tô sáng cú pháp. Sau khi vô hiệu hóa phông chữ với M-x font-lock-modenó hoạt động mà không có vấn đề.

Để vô hiệu hóa nó vĩnh viễn để csv-modethêm vào cấu hình của bạn:

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

Hoặc nếu bạn là người dùng gói sử dụng:

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

2
Sau khi vô hiệu hóa font-lock-mode, company-modevà một vài chế độ nhỏ khác, tốc độ được cải thiện đáng kể! Tôi coi đây là một thành công lớn.
holocronweaver

5
Tôi thậm chí sẽ cân nhắc việc gói này chỉ áp dụng cho các tệp lớn:(when (> (point-max) some-large-number) (font-lock-mode -1))
Sean Allred
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.