Comment afficher et modifier des fichiers de valeurs séparés par de grands délimiteurs?


14

J'ai utilisé csv-modepour modifier des fichiers CSV de petite à moyenne taille, mais récemment j'ai travaillé avec des fichiers volumineux contenant plus de 40 812 entrées. csv-modea du mal à aligner et à naviguer dans les tableaux, et est trop lent pour être utilisable tel quel. En comparaison, LibreOffice Calc peut parcourir le fichier.

Existe-t-il un moyen simple de csv-modegérer de grandes tables ou existe-t-il une meilleure approche?

Je suis au courant d' une question liée au débordement de pile . Sa solution était d'aligner uniquement la portion de tampon dans la fenêtre visible, mais cela n'a pas résolu la lenteur dans mon cas.

Voici un exemple de fichier. J'ai essayé de le rendre grand, mais pas si grand qu'il gèlerait Emacs sur les ordinateurs plus anciens.


3
L'édition de tableaux n'est pas l'une des forces actuelles d'Emacs. Je souhaite que ce soit. Je préfère ne jamais avoir à utiliser une feuille de calcul dédiée.
wdkrnls

2
Pas une réponse à court terme, mais vous voudrez peut-être à ce M-x report-emacs-bugsujet, idéalement avec une recette pour reproduire le ralentissement. Il y a probablement beaucoup de place à l'amélioration csv-mode.
Stefan

3
Avez-vous un exemple de fichier qui illustre le problème?
Wilfred Hughes

Oui, oui. Ajouté à la question.
holocronweaver

Réponses:


12

Avec csv-modeje peux voir quelques décalages avec votre fichier, mais uniquement avec la coloration syntaxique activée. Après avoir désactivé la fontification, M-x font-lock-modecela fonctionne sans problème.

Pour le désactiver définitivement pour l' csv-modeajouter à votre configuration:

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

Ou si vous êtes un utilisateur du package d' utilisation:

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

2
Après avoir désactivé font-lock-mode, company-modeet quelques autres modes mineurs, la vitesse s'est considérablement améliorée! Je considère cela comme un succès majeur.
holocronweaver

5
J'envisagerais même d'envelopper cela pour ne s'appliquer qu'aux fichiers volumineux:(when (> (point-max) some-large-number) (font-lock-mode -1))
Sean Allred
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.