49 votes

Comment puis-je vérifier si un tampon courant existe dans Emacs?

Je voudrais écrire une fonction qui prend des mesures si l'un donne tampon nom existe déjà. Par exemple:

(if (buffer-exists "my-buffer-name")
    ; do something
 )

Ne elisp ont une fonction qui va vérifier la faveur de l'existence d'un tampon similaire à la façon dont mon composée "de la mémoire tampon existe la fonction" ne?

Merci

67voto

Gareth Rees Points 31350

À partir de la documentation:

(obtenir le tampon de nom)

De retour de la mémoire tampon nommé nom (une chaîne).
Si il n'y a pas de tampon de nom, de retour nul.
le nom peut également être une mémoire tampon; et dans ce cas, la valeur correspond à celle de la mémoire tampon.

(get-tampon-créer de nom)

De retour de la mémoire tampon nommé nom, ou de créer un tel tampon et le retourner.
Un nouveau tampon est créé si il n'existe pas de vivre tampon nommé nom.
Si le nom commence par un espace, le nouveau tampon de ne pas garder défaire de l'information.
Si le nom est un tampon au lieu d'une chaîne de caractères, alors c'est la valeur retournée.
La valeur n'est jamais nul.

8voto

oles Points 18

C'est ce que j'ai fait:

  (if (get-buffer "*scratch*")
    (kill-buffer "*scratch*")
    (message ""))

Cette vérification de la mémoire tampon de zéro. Si il y a une telle chose, de le tuer. Si non, ne rien faire du tout.

5voto

user249106 Points 21

Si vous souhaitez définir votre fonction hypothétique comme ci-dessus, cela fonctionne:

(defun buffer-exists (bufname) (not (eq nil (get-buffer bufname))))

Je l'utilise pour fermer automatiquement le zéro de la mémoire tampon au démarrage, donc je n'ai pas de défiler dans ma liste de tampons, comme suit:

(defun de la mémoire tampon existe (bufname) (non (eq (néant pour obtenir le tampon de bufname))))
(si (tampon existe "zéro") (kill-buffer "scratch"))

-2voto

Neil Sarkar Points 1584

Gareth réponse est techniquement correct, mais n'est-il pas plus rapide de frapper C-x b (passer de la mémoire tampon), tapez les premières lettres du nom de la mémoire tampon que vous êtes à la recherche pour, et de cliquer sur l'onglet qui tire vers le haut une liste de correspondance de tampons et puis il suffit de voir si elle est dans la liste?

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