Parfois, ma liste de tampons a plus de 10 fenêtres dirigées, et je finis par les buffer-menu
marquer et les tuer manuellement. Existe-t-il un moyen plus rapide de fermer toutes les fenêtres ouvertes?
Parfois, ma liste de tampons a plus de 10 fenêtres dirigées, et je finis par les buffer-menu
marquer et les tuer manuellement. Existe-t-il un moyen plus rapide de fermer toutes les fenêtres ouvertes?
Réponses:
Vous pouvez effectuer les opérations suivantes:
M-x
ibuffer
* /
pour marquer les tampons en mode Dired.
D
pour les supprimer.
C-x C-b
à ibuffer
.
t
( dired-toggle-marks
) pour tout marquer (si aucun n'a été précédemment marqué).
dired-toggle-marks
est le nom de la commande dired . Appuyez sur t
pour basculer également toutes les marques dans ibuffer, mais les tampons non-dired sont généralement plus nombreux que les tampons dired, donc le basculement n'a pas souvent de sens dans ce contexte.
Au lieu d'ajouter une autre fonction pour tuer tous les dired
tampons, je vous suggère de profiter des groupes de filtres ibuffer
, cela vous permet de grouper le tampon par plusieurs conditions.
Voici un exemple pour définir des groupes de filtres:
(setq-default ibuffer-saved-filter-groups
`(("Default"
;; I create a group call Dired, which contains all buffer in dired-mode
("Dired" (mode . dired-mode))
("Temporary" (name . "\*.*\*"))
)))
Ensuite, C-x C-b
ouvrez la ibuffer
fenêtre, vous pouvez voir quelque chose comme ceci:
Déplacez le curseur sur [ Dired ]
(avec M-p
, M-n
), puis appuyez sur d
pour marquer comme supprimer
puis appuyez sur x
pour exécuter.
Je préfère cette façon parce que je n'ai pas besoin de penser à la façon dont je dois lier ma clé à la nouvelle fonction, et mes tampons sont mieux organisés.
ibuffer
après avoir évalué votre code. J'ai dû frapper / R
(lié à ibuffer-switch-to-saved-filter-groups
) pour obtenir les groupes.
(ibuffer-switch-to-saved-filter-groups "Default")
Vous pouvez ajouter cette ligne de code dans le crochet ibuffer, le nom des groupes de filtres doit être changé s'il ne l'est pasDefault
Avez-vous de nombreux tampons Dired parce que vous les vouliez tous à un moment donné? OIEau, avez - vous envie de créer chacun d'eux comme des tampons séparés?
Sinon, la solution est simple: dites à Dired de réutiliser un tampon Dired existant lorsque vous frappez RET
un nom de répertoire pour l'ouvrir dans Dired.
Voici comment procéder:
Charger la bibliothèque Dired + ( dired+.el
):
(require 'dired+)
Dites à Dired de réutiliser les tampons de Dired:
(diredp-toggle-find-file-reuse-dir 1)
L'effet est que lorsque vous frappez RET
(ou cliquez sur la souris) sur un répertoire dans Dired, find-alternate-file
est utilisé, de sorte que le tampon Dired d'origine est remplacé (supprimé) par le nouveau.
Vous pouvez basculer ce comportement à tout moment, en utilisant C-M-R
(aka C-M-S-r
) dans Dired.
Quelque chose comme ça (faites défiler un peu)?
(defun kill-dired-buffers ()
(interactive)
(mapc (lambda (buffer)
(when (eq 'dired-mode (buffer-local-value 'major-mode buffer))
(kill-buffer buffer)))
(buffer-list)))
Vous pouvez également utiliser helm-mini
:
M-x helm-mini
.*Di
(mot partiel pour Dired
, pas besoin d'entrer plus). Au fur et à mesure que vous tapez, les tampons sont rétrécis progressivement. Maintenant, il ne Dired
reste que du tampon. Appuyez sur M-a
pour tout marquer.TAB
pour passer au menu d'action et appuyez sur K
pour sélectionner l' action Kill buffer(s)
.RET
pour exécuter l'action.La bonne chose avec helm-mini
est qu'il peut remplacer Emacs normal C-x b
, vous n'aurez donc pas à utiliser deux raccourcis clavier, un pour changer de tampon et un pour un gestionnaire de tampon réel. helm-mini
est tout-en-un. En savoir plus dans mon mini-guide .
helm-mini
peut également créer un tampon de correspondance floue et permettre d'ouvrir plusieurs tampons en marquant avec C-SPC
ou M-a
(signifie M ark a ll). Vous pouvez également affiner pour tamponner contenir certaines chaînes en ajoutant @
avant un modèle, par exemple, @test
signifie que seuls les tampons contiennent la chaîne "test".
J'essaierais quelque chose comme ça:
(require 'dash)
(defun my-kill-dired-buffers ()
(interactive)
(kill-some-buffers
(-filter (lambda (buffer)
(save-excursion
(set-buffer buffer)
(eq major-mode 'dired-mode)))
(buffer-list))))
-filter
requiert dash.el
de MELPA. Vous devriez probablement mentionner cela comme une exigence.
Ce que vous cherchez peut-être est un moyen de nettoyer automatiquement les tampons indésirables, auquel cas vous devriez vérifier midnight.el
, qui fait partie d'Emacs.
Mais d'une manière générale, ibuffer
il est très facile d'opérer sur des tampons en vrac, comme l'a suggéré Francisco.
Si vous utilisez des glaçons , vous pouvez utiliser C-x k
pour tuer tous les tampons fatigués - ou tous les tampons dans un mode donné.
Après avoir frappé C-x k
, utilisez C-x M +
pour conserver uniquement les tampons avec un certain mode. Appuyez TAB
pour voir les modes et choisissez dired-mode
. Ensuite, utilisez C-!
pour tuer tous les tampons avec ce mode.
C-x k C-x M + dired-mode C-!