Jak przeglądać i edytować pliki wartości rozdzielane dużymi separatorami?

14

I zostały z wykorzystaniem csv-modemodyfikacji małych i średnich plików CSV, ale ostatnio pracuję z dużych plików zawierających ponad 40,812 wpisów. csv-modestara się wyrównać tabele i poruszać się po nich, i jest zbyt wolny, aby można go było używać w obecnym stanie. Dla porównania LibreOffice Calc może spakować plik.

Czy istnieje prosty sposób na radzenie csv-modesobie z dużymi stołami, czy jest dostępne lepsze podejście?

Mam świadomość powiązanego pytania dotyczącego przepełnienia stosu . Jego rozwiązaniem było wyrównanie tylko części bufora w widocznym oknie, ale w moim przypadku nie rozwiązało to problemu z ospałością.

Oto przykładowy plik. Starałem się, aby był duży, ale nie tak duży, aby zamroził Emacsa na starszych komputerach.

holocronweaver
źródło
3
Edycja tabeli nie jest jedną z obecnych zalet Emacsa. Chciałbym, żeby tak było. Wolałbym nigdy nie używać dedykowanego arkusza kalkulacyjnego.
wdkrnls
2
Nie jest to odpowiedź krótkoterminowa, ale możesz chcieć M-x report-emacs-bugo tym poradzić, najlepiej z przepisem na odtworzenie spowolnienia. Prawdopodobnie jest wiele miejsca na ulepszenia csv-mode.
Stefan
3
Czy masz przykładowy plik, który demonstruje problem?
Wilfred Hughes
Tak, tak. Dodano do pytania.
holocronweaver

Odpowiedzi:

12

Z csv-modeWidzę pewne opóźnienia w twoim pliku, ale tylko z włączonym podświetlaniem składni. Po wyłączeniu czcionkowania z M-x font-lock-modenim działa bez problemów.

Aby wyłączyć to na stałe w celu csv-modedodania do konfiguracji:

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

Lub jeśli jesteś użytkownikiem pakietu use :

(use-package csv-mode
  :mode ("\\.csv\\'" . csv-mode)
  :init (add-hook 'csv-mode-hook (lambda () (font-lock-mode -1)))
  :ensure t)
kmicu
źródło
2
Po wyłączeniu font-lock-mode, company-modei kilka innych trybów drobne, prędkość znacznie się poprawiła! Uważam to za duży sukces.
holocronweaver
5
Rozważałbym nawet zawinięcie tego, by dotyczyło tylko dużych plików:(when (> (point-max) some-large-number) (font-lock-mode -1))
Sean Allred