Si j'ai accidentellement fermé le gratter dans Emacs, comment créer un nouveau tampon gratter tampon ?
Réponses
Trop de publicités?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
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.
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))
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)
;;;----------------------------------------------------------------------