Как просматривать и редактировать большие файлы значений, разделенные разделителем?

14

Я использовал csv-modeдля изменения файлов CSV малого и среднего размера, но недавно я работал с большими файлами, содержащими более 40 812 записей. csv-modeизо всех сил пытается выровнять и перемещаться по таблицам, и слишком медленный, чтобы его можно было использовать как есть. Для сравнения, LibreOffice Calc может перемещаться по файлу.

Есть ли простой способ csv-modeобработки больших таблиц или есть лучший подход?

Мне известен вопрос о переполнении стека . Его решение состояло в том, чтобы выровнять только часть буфера в видимом окне, но это не решило медлительность в моем случае.

Вот пример файла. Я пытался сделать его большим, но не таким большим, чтобы Emacs зависал на старых компьютерах.

holocronweaver
источник
3
Редактирование таблиц не является одной из сильных сторон Emacs. Я бы хотел, чтобы это было Я бы предпочел никогда не использовать специальную таблицу.
wdkrnls
2
Не краткосрочный ответ, но вы можете захотеть M-x report-emacs-bugоб этом, в идеале с рецептом, чтобы воспроизвести замедление. Там, вероятно, есть много возможностей для улучшения csv-mode.
Стефан,
3
У вас есть образец файла, который демонстрирует проблему?
Уилфред Хьюз
Да, да, я делаю. Добавлено к вопросу.
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)
kmicu
источник
2
После отключения font-lock-mode, company-modeи несколько других режимов незначительных, скорость значительно улучшились! Я считаю это крупным успехом.
Holocronweaver
5
Я бы даже подумал об этом, чтобы применить его только к большим файлам:(when (> (point-max) some-large-number) (font-lock-mode -1))
Шон Оллред