5 votes

Pourquoi je ne peux pas utiliser l'ancien fichier de style de thème sous Emacs 24.1 ?

Je peux utiliser mon fichier de style sous 23.1, 23.4, mais après avoir mis à jour Emacs vers 24.1, je ne peux plus utiliser les anciens fichiers de style. Par exemple, un de mes fichiers de style est couleur-thème-arjen.el . Voici le lien :

https://github.com/credmp/color-theme-arjen/blob/master/color-theme-arjen.el

Dans mon fichier elisp, j'utilise le code suivant pour charger le thème de couleur :

(load-file "~/emacs/site-lisp/color-theme/master_color-theme-arjen.el") (thème-couleur-arjen)

Je ne sais pas pourquoi le thème de couleurs fonctionne sous Emacs 23.1 & 23.4 mais ne fonctionne pas sous Emacs 24.1.

Pendant qu'Emacs charge le fichier, Emacs donne l'erreur suivante :

La définition de la fonction du symbole est nulle : plist-to-alist

Si je décommente le code ci-dessus et ne charge pas le fichier de style, l'erreur est rejetée.

Quelqu'un sait-il pourquoi cela se produit ? Ou comment je peux le déboguer ?

21voto

wenjun.yan Points 401

Oui, j'ai aussi trouvé ce bug. Il semble que la version 24 d'Emacs ne dispose pas de la fonction ' plist-to-alist '. Vous devez donc probablement l'écrire vous-même. Voici la mienne. Mettez cette fonction dans votre fichier dot-emacs et tout ira bien.

(defun plist-to-alist (the-plist)
  (defun get-tuple-from-plist (the-plist)
    (when the-plist
      (cons (car the-plist) (cadr the-plist))))

  (let ((alist '()))
    (while the-plist
      (add-to-list 'alist (get-tuple-from-plist the-plist))
      (setq the-plist (cddr the-plist)))
  alist))

J'espère que cela vous aidera : )

3voto

jeremiahd Points 2685

Le thème de couleur a été fortement remanié en 24, il y a un paquetage de thème de couleur inclus avec emacs (voir M-x customize-themes ), et pour autant que je sache, la rupture des anciens thèmes est prévue.

Le paquet de thèmes de couleurs de marmelade fonctionnerait aussi bien.

Vous devriez probablement ouvrir un rapport de bogue pour color-theme-arjen.

0voto

toastboy70 Points 1

Je ne sais pas vraiment pourquoi, mais en installant le thème solarisé dans emacs 24.3.1 sur MacOS X, j'ai constaté que si je mets mes lignes init :

(load-file "~/lisp/color-theme/color-theme.el")
(load-file "~/lisp/emacs-colors-solarized/color-theme-solarized.el")
(color-theme-solarized 'dark)

après avoir désactivé les barres de défilement :

(if (featurep 'scroll-bar)
    (scroll-bar-mode -1))

ça a bien marché. Dans l'autre sens, j'obtiens l'erreur ci-dessus. Je n'ai aucune idée de la raison pour laquelle la fonction color-theme-alist est affectée par l'absence de barre de défilement (l'appel à la fonction plist-to-alist semble être réservé à XEmacs).

0voto

douardo Points 469

Je remercie définitivement wenjun.yan. Mais je voudrais plutôt vérifier si la fonction existe avant de la définir :

(unless (fboundp 'plist-to-alist) 
(defun plist-to-alist (the-plist)
  (defun get-tuple-from-plist (the-plist)
    (when the-plist
      (cons (car the-plist) (cadr the-plist))))
  (let ((alist '()))
    (while the-plist
      (add-to-list 'alist (get-tuple-from-plist the-plist))
      (setq the-plist (cddr the-plist)))
  alist)))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X