En ce moment, mon cadre Emacs est divisé verticalement et je regarde deux tampons différents dans les deux fenêtres.
Je voudrais aller à un mot dans un tampon, appuyer sur certaines touches et avoir les occurrences de ce mot (le cas échéant) en surbrillance dans l' autre tampon, en y faisant défiler si nécessaire.
Y-a-t-il un moyen de faire ça?
Dans la capture d'écran ci-dessus, avec mon curseur juste avant "bar" dans le tampon de gauche, j'aimerais pouvoir <faire quelque chose> et voir rapidement où "bar" se trouve dans le tampon de droite.
Remarque: Ceci est lié à Comment trouver du texte dans plusieurs tampons ouverts? dans le sens où, si je pouvais faire une recherche dans l'autre "tampon", il ferait ce que je veux. Mais aucune des réponses là-bas n'est exactement ce que je veux:
- Les
occur
solutions basées ouvrent une nouvelle fenêtre qui montre les lignes correspondantes, tandis que je voudrais garder mes deux fenêtres toujours affichées - je vais en fait chercher dans l'autre tampon le contexte autour de la correspondance, donc n'afficher que la ligne correspondante n'est pas très utile. multi-isearch-buffers
m'oblige à spécifier la liste des tampons chaque fois que je veux faire cette recherche (beaucoup de fois), au lieu de la ramasser automatiquement comme les deux tampons affichés. Plus important encore, lorsque je démarre à partir d'une fenêtre et que j'effectue l'isearch, lorsqu'il trouve la correspondance dans l'autre tampon, il affiche ce tampon dans cette fenêtre, de sorte que les deux fenêtres affichent le même (autre) tampon. Ensuite, Cg remet tout en place et je ne vois plus le mot mis en surbrillance dans l'autre tampon.icicle-search
a tellement de fonctionnalités que l'un d'eux peut être en mesure de le faire, mais je n'ai rien trouvé après un examen rapide de la documentation.
C-s C-w C-x o C-s C-s
ne me semble pas si mal. (Vous n'avez pas besoin d'unC-s
droit après leC-w
.)C-s C-w C-x o C-s C-s C-x o
semble en effet très bien.Réponses:
Vous pouvez utiliser un package appelé
highlight-global
qui est disponible sur github mais pas sur Melpa (au moment de l'écriture).La
highlight-frame-toggle
fonction définie dans ce pacakge mettra en évidence le mot au point ou la région sélectionnée partout dans le cadre (dans tous les tampons). Cependant, cela ne ferait pas défiler automatiquement le mot en surbrillance dont vous avez besoin. Il sélectionne une couleur de surbrillance différente lorsque vous mettez en surbrillance plus de mots sans effacer les points forts précédents.Voici une capture d'écran de ce à quoi il ressemble:
Cliquez pour une meilleure vue de la capture d'écran
la source
helm a des interfaces qui peuvent atteindre cet objectif, j'ai enregistré un Gifcast pour démontrer le package helm-swoop :
Après avoir commencé la
helm-swoop
recherche, je peux soit réduire à moins de candidats en entrant d'autres jetons séparés par des espaces, soit frapperC-p
etC-n
passer au suivant et faire défiler le tampon cible en même temps.la source
helm-swoop
.C-s C-w C-x o C-s C-s C-x o
(qui est ce que j'utilise maintenant, et semble bien en fait).Que diriez-vous d'utiliser
highlight-regexp
pour mettre en surbrillance le symbole actuel (ou mot, région, etc.) dans l'autre fenêtre?Voici quelques fonctions qui pourraient fonctionner. Le premier trouvera le symbole au point, puis passera à l'autre fenêtre et le mettra en surbrillance. La seconde passe à l'autre fenêtre et supprime les hautes lumières.
Dans les deux cas, cela revient en arrière afin que la fenêtre actuelle reste active à la fin. Je ne sais pas si c'est ce que vous voulez, sinon laissez le dernier
other-window
appel.Ces fonctions pourraient également être améliorées en vérifiant et en faisant correspondre la région active; traiter le cas où aucune autre fenêtre n'est visible; etc.
la source
highlight-frame-toggle
commande mentionnée dans une autre réponse semble être une version plus soignée de cela, donc je suppose que vous n'avez pas besoin de lancer la vôtre.