Come visualizzare e modificare file di valori separati da delimitatori di grandi dimensioni?


14

Ho usato csv-modeper modificare file CSV di piccole e medie dimensioni, ma recentemente ho lavorato con file di grandi dimensioni contenenti più di 40.812 voci. csv-modefatica ad allineare e navigare tra le tabelle ed è troppo lento per essere utilizzabile così com'è. In confronto, LibreOffice Calc può comprimere il file.

Esiste un modo semplice per csv-modegestire tabelle di grandi dimensioni o è disponibile un approccio migliore?

Sono a conoscenza di una domanda Stack Overflow correlata . La sua soluzione era di allineare solo la porzione di buffer nella finestra visibile, ma questo non risolveva la lentezza nel mio caso.

Ecco un file di esempio. Ho provato a renderlo grande, ma non così grande da congelare Emacs sui computer più vecchi.


3
La modifica delle tabelle non è uno dei punti di forza attuali di Emacs. Vorrei che fosse. Preferirei non dover mai usare un foglio di calcolo dedicato.
wdkrnls,

2
Non è una risposta a breve termine, ma potresti volerlo M-x report-emacs-bug, idealmente con una ricetta per riprodurre il rallentamento. Probabilmente c'è molto margine di miglioramento in csv-mode.
Stefan,

3
Hai un file di esempio che dimostra il problema?
Wilfred Hughes,

Si si lo faccio. Aggiunto alla domanda.
holocronweaver,

Risposte:


12

Con csv-modeposso vedere alcuni ritardi con il tuo file, ma solo con l'evidenziazione della sintassi abilitata. Dopo aver disabilitato la fontificazione M-x font-lock-mode, funziona senza problemi.

Per disabilitarlo in modo permanente per csv-modeaggiungere alla tua configurazione:

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

O se sei un utente del pacchetto d' uso:

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

2
Dopo aver disabilitato font-lock-mode, company-modee un paio di altre modalità minori, la velocità è migliorata considerevolmente! Lo considero un grande successo.
holocronweaver,

5
Vorrei anche considerare il wrapping per applicarlo solo a file di grandi dimensioni:(when (> (point-max) some-large-number) (font-lock-mode -1))
Sean Allred
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.