172 votes

Ré-ouvrir le tampon *scratch* dans Emacs ?

Si j'ai accidentellement fermé le gratter dans Emacs, comment créer un nouveau tampon gratter tampon ?

206voto

Trey Jackson Points 49816

Liaisons par défaut de GNU Emacs :

C-x b *scratch* RET

ou, de manière plus explicite

M-x switch-to-buffer *scratch* RET

Le site *scratch* Le tampon est le tampon sélectionné au démarrage, et a le mode principal Interaction avec Lisp . Remarque : le mode pour le *scratch* est contrôlée par la variable initial-major-mode .

En général, vous pouvez créer autant de tampons "scratch" que vous le souhaitez, et les nommer comme vous le voulez.

C-x b NAME RET

passe à un tampon NAME en le créant s'il n'existe pas. Un nouveau tampon n'est pas associé à un fichier sur le disque jusqu'à ce que vous utilisiez la commande C-x C-w (ou M-x write-file ) pour choisir un fichier où il doit être enregistré.

M-x text-mode

change le mode principal du tampon actuel en mode texte. Pour trouver tous les modes disponibles (c'est-à-dire sans nécessiter de nouveaux paquets), vous pouvez obtenir une liste en tapant :

M-x apropos-command -mode$ RET

23voto

user45273 Points 171

J'ajoute ce qui suit dans mon .emacs :

;; bury *scratch* buffer instead of kill it
(defadvice kill-buffer (around kill-buffer-around-advice activate)
  (let ((buffer-to-kill (ad-get-arg 0)))
    (if (equal buffer-to-kill "*scratch*")
        (bury-buffer)
      ad-do-it)))

Si je ne veux pas voir gratter J'ai appuyé sur C-x C-k , mais cela ne l'a pas tué, juste placé à la fin de la liste des tampons, de sorte que la prochaine fois que j'en aurai besoin, je n'aurai pas à en créer un nouveau.

15voto

idbrise Points 4551

Il y a tout un tas de conseils sur cette page EmacsWiki .

Voici le premier :

Une fonction très simple pour recréer le tampon de grattage :

(defun create-scratch-buffer nil
   "create a scratch buffer"
   (interactive)
   (switch-to-buffer (get-buffer-create "*scratch*"))
   (lisp-interaction-mode))

9voto

Steven Huwig Points 8029

C-x b *scratch* RET y RET avec iswitchb-mode activé.

Juste C-x b *scratch* RET sinon.

4voto

dwj Points 2006

Je l'ai trouvé il y a des années quand j'ai commencé à utiliser emacs ; je n'ai aucune idée de l'endroit où il se trouve maintenant mais il a toujours eu sa place dans mes fichiers .el personnels. Il apparaît dans les recherches google.

;;; Prevent killing the *scratch* buffer -- source forgotten
;;;----------------------------------------------------------------------
;;; Make the *scratch* buffer behave like "The thing your aunt gave you,
;;; which you don't know what is."
(save-excursion
  (set-buffer (get-buffer-create "*scratch*"))
  (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)
;;;----------------------------------------------------------------------

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