Pourquoi utiliser des tampons indirects?

Réponses:

16

Pour voir et modifier plusieurs emplacements du même tampon. Ainsi, vous n'avez pas à faire défiler un long tampon, mais simplement basculer la fenêtre vers la région visible. Chaque tampon cloné a également un anneau de marque différent, un rétrécissement et d'autres propriétés de tampon. Si vous n'utilisez pas de tampon indirect mais créez une autre fenêtre du même tampon, tout est partagé et vous ne pouvez pas effectuer d'autres fonctionnalités avancées au-delà de l'affichage et de la modification de différents emplacements. Par exemple, avec un tampon indirect, vous pouvez plier tout le bloc de code, créer efficacement une "arborescence de balises" sans affecter le tampon d'origine. À l'aide d'une fenêtre, les deux tampons des deux fenêtres sont repliés car les deux tampons sont identiques.

En résumé, le tampon indirect est un tampon complètement différent qui partage le même texte et fichier dans votre tampon d'origine, donc lorsque vous enregistrez un tampon cloné, il enregistre également votre fichier d'origine.

Tu Do
la source
3
Je reconnais que les tampons indirects ont des avantages. Mais votre premier point n'a pas besoin que les tampons soient indirects. Vous pouvez voir et modifier plusieurs emplacements du même tampon même si le même tampon est simplement ouvert dans deux fenêtres. Mais oui, le rétrécissement indépendant, le pliage, etc. sont les caractéristiques fortes d'un tampon indirect à mon avis.
Kaushal Modi
5
Modifiez également le même tampon avec plusieurs modes (combinez le tampon indirect avec le rétrécissement). Vous pouvez éditer certaines parties d'un tampon avec des modes de démarque, une autre partie avec des modes python, une autre partie avec des modes json
freakhill
Vous pouvez voir plusieurs emplacements à l'aide de plusieurs fenêtres seules, mais comme il n'y a qu'une seule valeur de point dans cette situation, la commutation des tampons ne préservera pas les emplacements dans les deux fenêtres, mais une seule.
politza
9

Un cas d'utilisation utilise un mode majeur différent sur une partie d'un fichier.

Par exemple, je travaillais à un moment avec des documents xml avec du code à l'intérieur de certains éléments. Je voulais pouvoir modifier l'intégralité du document comme s'il s'agissait de XML, mais avoir toujours toutes les principales fonctionnalités de mode pour le langage de programmation intégrées dans certains éléments, j'ai donc réduit le corps de ces éléments dans un tampon indirect qui exécutait le mode majeur approprié.

Voici une fonction de ma configuration que j'utilise pour ce faire:

(defun indirect-region (start end)
  "Edit the current region in another indirect buffer.
    Prompt for a major mode to activate."
  (interactive "r")
  (let ((buffer-name (generate-new-buffer-name "*indirect*"))
        (mode (intern
               (completing-read
                "Mode: "
                (mapcar (lambda (e)
                          (list (symbol-name e)))
                        (apropos-internal "-mode$" 'commandp))
                nil t))))
    (pop-to-buffer (make-indirect-buffer (current-buffer) buffer-name))
    (funcall mode)
    (narrow-to-region start end)
    (goto-char (point-min))
    (shrink-window-if-larger-than-buffer)))

Remarque: ce n'est pas parfait, des choses comme le verrouillage de police nécessitent un travail supplémentaire spécial pour une utilisation dans ce scénario.

Jordon Biondo
la source
3

Les tampons indirects vous offrent plusieurs vues du même tampon, en particulier, plusieurs rétrécissements, chacun agissant, à bien des égards, comme un tampon séparé.

Comme le dit le Commentaire de la bibliothèque narrow-indirect.el:

Vous pouvez utiliser des tampons indirects pour plus que vous ne le pensez. Vous pouvez utiliser des clones extraits de portions de tampons Dired, par exemple, pour vous donner des vues utiles (actives) dans une liste de répertoires. Il n'y a que quelques touches / commandes (telles que la gmise à jour de la liste) qui ne fonctionnent pas, car elles dépendent d'une vue de l'ensemble du tampon Dired. Expérimentez, et vous trouverez sans aucun doute de nouvelles utilisations intéressantes pour les tampons indirects.

A dessiné
la source