PlanDuSite ModificationsRécentes Nouvelles SectionElisp CommentFaire

RecréerLeBufferScratch

Le buffer scratch sert pour les notes qui n’ont pas besoin d’être sauvegardées et pour évaluer du code Lisp.

Le buffer scratch est bien pratique mais on a souvent tendance à le tuer pour effacer son contenu.

Pour le recréer on peut utiliser une fonction simple:

    (defun create-scratch-buffer nil
       "créer un buffer scratch"
       (interactive)
       (switch-to-buffer (get-buffer-create "*scratch*"))
       (lisp-interaction-mode))             

Une autre solution consiste à le recréer automatiquement chaque fois qu’il est tué. Pour cela ajouter le code suivant dans le .emacs:

             
    ;; If the *scratch* buffer is killed, recreate it automatically
    ;; FROM: Morten Welind
    ;;http://www.geocrawler.com/archives/3/338/1994/6/0/1877802/
    (save-excursion
      (set-buffer (get-buffer-create "*scratch*"))
      (lisp-interaction-mode)
      (make-local-variable 'kill-buffer-query-functions)
      (add-hook 'kill-buffer-query-functions 'kill-scratch-buffer))

    (defun kill-scratch-buffer ()
      ;; The next line is just in case someone calls this manually
      (set-buffer (get-buffer-create "*scratch*"))
      ;; Kill the current (*scratch*) buffer
      (remove-hook 'kill-buffer-query-functions 'kill-scratch-buffer)
      (kill-buffer (current-buffer))
      ;; Make a brand new *scratch* buffer
      (set-buffer (get-buffer-create "*scratch*"))
      (lisp-interaction-mode)
      (make-local-variable 'kill-buffer-query-functions)
      (add-hook 'kill-buffer-query-functions 'kill-scratch-buffer)
      ;; Since we killed it, don't let caller do that.
      nil)

Si vous voulez un buffer scratch exactement comme au départ vous pouvez toujours ajouter :

    (insert initial-scratch-message)

dans les fonctions ci-dessus ;-)

Enfin M-x customize-option RET initial-scratch-message RET permet de modifier le message initial.

This page is also available in english : English:RecreateScratchBuffer


CatégoriePointEmacs