Si je accidentellement fermé le zéro tampon dans Emacs, comment puis-je créer une nouvelle zéro tampon?
Liaisons par défaut de GNU Emacs:
C-xb
*scratch*
RET
ou, plus verbeusement
M-x
switch-to-buffer *scratch*
RET
Le *scratch*
tampon est le tampon sélectionné au démarrage et possède le mode majeur Lisp Interaction . Remarque: le mode du *scratch*
tampon est contrôlé 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 souhaitez.
C-xb
NAME
RET
bascule vers un tampon NAME
, 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 C-xC-w(ou M-x write-file
RET) pour choisir un fichier dans lequel il doit être enregistré.
M-x
text-mode
RET
change le mode principal du tampon actuel en mode Texte. Pour trouver tous les modes disponibles (c'est-à-dire sans nécessiter de nouveaux packages), vous pouvez obtenir une liste en tapant:
M-x
apropos-command -mode$
RET
.emacs
définissez un mode de scratch par défaut différent , celui-ci sera le mode pour le nouveau scratch - pas le mode d'interaction de liste.J'ajoute ce qui suit dans mes .emacs:
Si je ne veux pas voir de zéro tampon je presse Ck Cx, mais il ne tue pas, lieu juste à la fin de la liste des tampons, donc je besoin prochaine fois que je ne dois pas en créer un nouveau.
la source
Il y a tout un tas d'astuces sur cette page EmacsWiki .
Voici le premier:
la source
Cx b
*scratch*
RET y RET avec le mode iswitchb activé.*scratch*
Sinon, juste Cx b RET.la source
initial-major-mode
variable (lisp-interaction-mode par défaut).J'ai découvert cela il y a des années lorsque j'ai commencé à utiliser emacs; Je ne sais pas où maintenant mais il a toujours eu une place dans mes fichiers personnels .el. Il apparaît dans les recherches Google.
la source
J'avais l'habitude d'utiliser la solution de dwj, et j'en étais plutôt content, jusqu'au jour où j'ai réalisé qu'elle échouait lorsque vous renommez réellement le tampon de travail (par exemple en le sauvegardant).
Ensuite, j'ai adopté ceci, qui fonctionne bien pour moi:
la source
J'ai
scratch
comme commande interactive pour ouvrir un nouveau tampon de scratch (j'aime en avoir plusieurs):adopté de: http://everything2.com/index.pl?node_id=1038451
la source
bufname
RET)?ido-mode
et ai généralement pas mal de tampons ouverts. Créer un nouveau tampon en utilisantC-x b
serait vraiment fastidieux. Je devrais trouver un nom unique qui ne correspond à aucun des tampons actuellement présents.Cela ne passera pas seulement rapidement en
*scratch*
tampon (puisque je le fais fréquemment), mais recréera un*scratch*
tampon et s'activeralisp-interaction-mode
automatiquement si vous le tuez accidentellement. Modifiez la reliure à votre guise.la source
Juste pour noter que le package emacs
unkillable-scratch
dans MELPA fera cela. Il y a aussiscratch-persist
qui sauvegardera et restaurera automatiquement le tampon entre les sessions.la source
Comme le dit la docstring, cette fonction va:
Cela apportera un nouveau tampon de scratch qui ressemble au tampon de scratch initial.
la source
C'est ce que j'utilise - je l'ai lié à une frappe pratique. Il vous envoie au
*scratch*
tampon, qu'il existe déjà ou non, et le définit pour être danslisp-interaction-mode
la source
Je préfère que mon tampon de travail soit un fichier réel qui est automatiquement enregistré, et sa réouverture est aussi simple que d'ouvrir un fichier. Au démarrage, je tue la valeur par défaut et trouve la mienne comme ça.
J'ai une fonction de kill-buffer personnalisée qui fait essentiellement la même chose - rouvre mon fichier personnel enregistré de scratch et tue le scratch par défaut si j'ai tué le dernier tampon visible.
J'ai personnalisé quelques-unes des
desktop.el
fonctions à charger après(kill-buffer "*scratch*")
et(find-file "/Users/HOME/Desktop/.scratch")
pour que le fichier visible pour la dernière fois à la sortie d'Emacs ne soit pas enterré par le scratch par défaut ou enterré par mon scratch personnalisé lors du lancement d'Emacs.J'aime utiliser
auto-save-buffers-enhanced
, qui enregistre automatiquement toute extension de fichier qui n'est pas spécifiquement exclue:https://github.com/kentaro/auto-save-buffers-enhanced/blob/master/auto-save-buffers-enhanced.el
J'utilise une légère variation de la fonction par @paprika lorsque je veux créer un tampon de visite sans fichier:
la source
J'ai combiné les solutions publiées jusqu'à présent en une seule fonction:
Pour appliquer cette fonction dans votre .emacs, utilisez:
Cela rendra le tampon de scratch indestructible en premier lieu, et s'il est enregistré, il sera recréé. De plus, nous pouvons utiliser une fonction de raccourci
scratch
pour faire apparaître le tampon rapidement:Dans le passé, il s'est avéré utile de connaître le répertoire de démarrage d'origine à partir duquel Emacs a été lancé. C'est la valeur
desktop-dirname
ou ladefault-directory
variable locale du scratch-buffer:Donc --startup-directory retournera toujours le répertoire de base de votre makefile, TODO-file etc. Dans le cas où il n'y a pas de bureau ( --no-desktop commandline-switch ou pas de desktop-file) la
--scratch-directory
variable contiendra le répertoire qu'Emacs était une fois commencé sous.la source
trouver la réponse dans EmacsWiki: http://www.emacswiki.org/emacs/RecreateScratchBuffer
la source
Pour ajouter à la réponse acceptée, si vous avez activé le mode ILO (et qu'il se complète automatiquement après C-x b, vous ne permettant donc pas d'écrire
*scratch*
), essayez:C-x b C-b *scratch* RET
la source
pour créer un nouveau tampon qui est également en mode d'interaction lisp.
la source