Parfois, ma liste de tampons a plus de 10 fenêtres dirigées, et je finis par les buffer-menumarquer et les tuer manuellement. Existe-t-il un moyen plus rapide de fermer toutes les fenêtres ouvertes?
J'ai accepté la réponse qui répond le plus directement à la question. Cependant, j'ai depuis commencé à appliquer une once de prévention à la place: emacs.stackexchange.com/a/1041/93
Je n'avais jamais entendu parler d'ibuffer auparavant. Je vais certainement être cartographie C-x C-bà ibuffer.
nispio
Vous pouvez également appuyer sur t( dired-toggle-marks) pour tout marquer (si aucun n'a été précédemment marqué).
caisah
@caisah dired-toggle-marksest le nom de la commande dired . Appuyez sur tpour 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.
nispio
@nispio Vous avez raison. Je ne sais pas pourquoi, mais je pensais que tous les tampons étaient dirigés ...
caisah
1
Remarque: cela ne fonctionne pas correctement lorsqu'il n'y a pas de tampons dirigés, car le D ne s'appliquera pas aux tampons dirigés, mais au premier tampon de la liste.
daniel kullmann
10
Au lieu d'ajouter une autre fonction pour tuer tous les diredtampons, 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-bouvrez la ibufferfenêtre, vous pouvez voir quelque chose comme ceci:
Déplacez le curseur sur [ Dired ](avec M-p, M-n), puis appuyez sur dpour marquer comme supprimer
puis appuyez sur xpour 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.
Les groupes de filtres ne s'affichaient pas pour moi lors de mon premier lancement ibufferaprès avoir évalué votre code. J'ai dû frapper / R(lié à ibuffer-switch-to-saved-filter-groups) pour obtenir les groupes.
itsjeyd
(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
Rangi Lin
1
Oui, c'est ce que j'ai fini par faire. Je ne connaissais pas les groupes de filtres avant de lire votre réponse, merci de les avoir mentionnés;)
itsjeyd
10
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 RETun nom de répertoire pour l'ouvrir dans Dired.
L'effet est que lorsque vous frappez RET(ou cliquez sur la souris) sur un répertoire dans Dired, find-alternate-fileest 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.
C'est la solution sur laquelle je me suis installé maintenant. Je n'ai jamais voulu 20 tampons Dired ouverts en premier lieu. Merci de l'avoir suggéré (et de l'avoir créé)
nispio
Les liens sont morts, obtenant un 404: (
Zelphir Kaltstahl
1
@Zelphir: Merci pour l'avertissement. Ça devrait aller maintenant. (Emacs Wiki a changé ses URL en général, donc les anciens messages comme celui-ci ont des liens cassés.)
Tapez dans l'invite: *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 Diredreste que du tampon. Appuyez sur M-apour tout marquer.
Appuyez sur TABpour passer au menu d'action et appuyez sur Kpour sélectionner l' action Kill buffer(s).
Appuyez sur RETpour exécuter l'action.
La bonne chose avec helm-miniest 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-miniest tout-en-un. En savoir plus dans mon mini-guide .
helm-minipeut également créer un tampon de correspondance floue et permettre d'ouvrir plusieurs tampons en marquant avec C-SPCou 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, @testsignifie que seuls les tampons contiennent la chaîne "test".
Je crois que cela -filterrequiert dash.elde MELPA. Vous devriez probablement mentionner cela comme une exigence.
Vamsi
1
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, ibufferil 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 kpour 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 TABpour voir les modes et choisissez dired-mode. Ensuite, utilisez C-!pour tuer tous les tampons avec ce mode.
Réponses:
Vous pouvez effectuer les opérations suivantes:
M-x
ibuffer
* /
pour marquer les tampons en mode Dired.D
pour les supprimer.la source
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 surt
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 filtresibuffer
, cela vous permet de grouper le tampon par plusieurs conditions.Voici un exemple pour définir des groupes de filtres:
Ensuite,
C-x C-b
ouvrez laibuffer
fenêtre, vous pouvez voir quelque chose comme ceci:Déplacez le curseur sur
[ Dired ]
(avecM-p
,M-n
), puis appuyez surd
pour marquer comme supprimerpuis 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.
la source
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
):Dites à Dired de réutiliser les tampons de Dired:
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
(akaC-M-S-r
) dans Dired.la source
Quelque chose comme ça (faites défiler un peu)?
la source
Vous pouvez également utiliser
helm-mini
:M-x helm-mini
.*Di
(mot partiel pourDired
, pas besoin d'entrer plus). Au fur et à mesure que vous tapez, les tampons sont rétrécis progressivement. Maintenant, il neDired
reste que du tampon. Appuyez surM-a
pour tout marquer.TAB
pour passer au menu d'action et appuyez surK
pour sélectionner l' actionKill buffer(s)
.RET
pour exécuter l'action.La bonne chose avec
helm-mini
est qu'il peut remplacer Emacs normalC-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 avecC-SPC
ouM-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".la source
J'essaierais quelque chose comme ça:
la source
-filter
requiertdash.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.la source
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
, utilisezC-x M +
pour conserver uniquement les tampons avec un certain mode. AppuyezTAB
pour voir les modes et choisissezdired-mode
. Ensuite, utilisezC-!
pour tuer tous les tampons avec ce mode.la source