Wie kann ich große Dateien mit durch Trennzeichen getrennten Werten anzeigen und bearbeiten?


14

Ich habe verwendet csv-mode, um kleine bis mittlere CSV-Dateien zu ändern, aber kürzlich habe ich mit großen Dateien mit mehr als 40.812 Einträgen gearbeitet. csv-modekämpft um die Ausrichtung und Navigation der Tabellen und ist zu langsam, um so verwendet werden zu können. Im Vergleich dazu kann LibreOffice Calc die Datei komprimieren.

Gibt es eine einfache Möglichkeit, csv-modegroße Tabellen zu verarbeiten, oder gibt es einen besseren Ansatz?

Mir ist eine verwandte Stapelüberlauf-Frage bekannt . Die Lösung bestand darin, nur den Teil des Puffers im sichtbaren Fenster auszurichten, aber dies löste nicht die Trägheit in meinem Fall.

Hier ist eine Beispieldatei. Ich habe versucht, es groß zu machen, aber nicht so groß, dass es Emacs auf älteren Computern einfriert.


3
Tabellenbearbeitung ist keine der aktuellen Stärken von Emacs. Ich wünschte es wäre. Ich würde lieber nie eine spezielle Tabelle verwenden müssen.
wdkrnls

2
Keine kurzfristige Antwort, aber Sie möchten M-x report-emacs-buges vielleicht tun , idealerweise mit einem Rezept, um die Verlangsamung zu reproduzieren. Es gibt wahrscheinlich viel Raum für Verbesserungen csv-mode.
Stefan

3
Haben Sie eine Beispieldatei, die das Problem demonstriert?
Wilfred Hughes

Ja ja mache ich. Zur Frage hinzugefügt.
Holocronweaver

Antworten:


12

Mit csv-modekann ich einige Verzögerungen mit Ihrer Datei sehen, aber nur mit aktivierter Syntaxhervorhebung. Nach dem Deaktivieren der Schrift M-x font-lock-modefunktioniert es ohne Probleme.

So deaktivieren Sie es dauerhaft, csv-modeum es zu Ihrer Konfiguration hinzuzufügen:

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

Oder wenn Sie ein Use-Package- Benutzer sind:

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

2
Nach dem Deaktivieren font-lock-mode, company-modeund ein paar andere kleinere Modi, Geschwindigkeit deutlich verbessert! Ich halte das für einen großen Erfolg.
Holocronweaver

5
Ich würde sogar in Betracht ziehen, dies so zu verpacken, dass es nur für große Dateien gilt:(when (> (point-max) some-large-number) (font-lock-mode -1))
Sean Allred,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.