OVH Cloud OVH Cloud

Emacs fait sa petite frappe

6 réponses
Avatar
Daniel Déchelotte
Bonjour,

Je tente d'ouvrir un fichier dans emacs (je l'utilise comme editeur de
fichiers) et il me dit :

find-file-noselect-1: Maximum buffer size exceeded

Pauvre petit, le fichier est trop gros pour lui...
Je fais quoi maintenant ?

(c'est un fichier de 225 Mo. Gros, mais pas astronomique)

--
Daniel Déchelotte
http://yo.dan.free.fr/

6 réponses

Avatar
Sébastien Kirche
Le 14 Mar 2005, Daniel Déchelotte vraute :

Bonjour,



Salut,

Je tente d'ouvrir un fichier dans emacs (je l'utilise comme editeur de
fichiers) et il me dit :

find-file-noselect-1: Maximum buffer size exceeded

Pauvre petit, le fichier est trop gros pour lui...
Je fais quoi maintenant ?

(c'est un fichier de 225 Mo. Gros, mais pas astronomique)



Quelle est ta version ?

Si je me rappelle bien il y avait jusqu'il y a peu une limite dûe à
l'utilisation par le lisp de seulement 28 bits sur 32 (pour les archi 32
bits).

Cette limite a été supprimée dans la version CVS qui est maintenant capable
d'utiliser toute la mémoire disponible.

Au cas où : il s'agit de définir USE_LSB_TAG à la compilation pour qu'Emacs
utilise tous les bits. Mais de toutes façon c'est par défaut sur la plupart
des plateformes supportées.

--
Sébastien Kirche
Avatar
Daniel Déchelotte
Sébastien Kirche a écrit :

| Quelle est ta version ?

GNU Emacs 21.3.1 (i386-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of
2004-10-16 on raven, modified by Debian

| [...]
| Cette limite a été supprimée dans la version CVS qui est maintenant
| capable d'utiliser toute la mémoire disponible.

Ok, et y a-t-il moyen (un mode tres special) de ne pas charger en memoire
*tout* le fichier (il faudrait au debut parcourir tout le fichier pour
savoir ou se trouvent les sauts de lignes, mais ensuite emacs ne
travaillerait que sur une "fenetre" d'une centaine de lignes). Une
application (un editeur specialise, en fait) qui ferait ca ?

--
Daniel Déchelotte
http://yo.dan.free.fr/
Avatar
Sébastien Kirche
Le 14 Mar 2005, Daniel Déchelotte a dit :

Ok, et y a-t-il moyen (un mode tres special) de ne pas charger en memoire
*tout* le fichier (il faudrait au debut parcourir tout le fichier pour
savoir ou se trouvent les sauts de lignes, mais ensuite emacs ne
travaillerait que sur une "fenetre" d'une centaine de lignes).



Un mode pour ouvrir une «fenêtre» sur un gros fichier ? Je viens de
chercher, mais je n'ai rien ramené dans mes filets. Ceci dit je vais creuser
car ça m'intéresse.

Une application (un editeur specialise, en fait) qui ferait ca ?



Dans le monde Windows, il y a au moins UltraEdit qui est capable d'ouvrir un
fichier de taille quelconque jusqu'à 4 Gb en ne chargeant que la portion
visible.

Dans le monde Linux, je ne sais pas trop. Peut-être que Nedit saurait ? Ou
Jedit qui est assez polyvalent (mais c'est du java :/ )

--
Sébastien Kirche
Avatar
Matthieu Moy
Daniel Déchelotte writes:

Sébastien Kirche a écrit :

| Quelle est ta version ?

GNU Emacs 21.3.1 (i386-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of
2004-10-16 on raven, modified by Debian

| [...]
| Cette limite a été supprimée dans la version CVS qui est maintenant
| capable d'utiliser toute la mémoire disponible.



Mais de toutes façons, Emacs stoque pas mal de trucs en plus du texte
(font-lock & cie) donc, il y a fort a parier que pour ouvrir un
fichier de 255 Mo, il ai besoin de bien plus en RAM.

Ok, et y a-t-il moyen (un mode tres special) de ne pas charger en memoire
*tout* le fichier



split avant d'editer
cat après

http://www.google.com/search?q=emacs+split+cat+large+file

Si ca se trouve, il y a un mode Emacs pour ça, et en tous cas, ça doit
pas être très dur a faire.

--
Matthieu
Avatar
Sébastien Kirche
Le 14 Mar 2005, Matthieu Moy a dit :

Si ca se trouve, il y a un mode Emacs pour ça, et en tous cas, ça doit
pas être très dur a faire.



J'ai cherché sans trouver jusqu'à maintenant.
Je serais curieux de voir ça.

--
Sébastien Kirche
Avatar
drkm
Sébastien Kirche writes:

Le 14 Mar 2005, Matthieu Moy a dit :

Si ca se trouve, il y a un mode Emacs pour ça, et en tous cas, ça doit
pas être très dur a faire.



J'ai cherché sans trouver jusqu'à maintenant.
Je serais curieux de voir ça.



Le premier résultat du lien donné par Matthieu donne la réponse. Le
reste, ce n'est qu'un peu d'enrobage ELisp. Et de lecture de (info
(elisp)Processes).

--drkm