Im Moment habe ich meinen Emacs-Rahmen vertikal geteilt und betrachte zwei verschiedene Puffer in den beiden Fenstern.
Ich möchte zu einem Wort in einem Puffer gehen, einige Tasten drücken und die Vorkommen dieses Wortes (falls vorhanden) im anderen Puffer hervorheben und bei Bedarf zu diesem Wort scrollen.
Gibt es eine Möglichkeit, das zu tun?
Im obigen Screenshot möchte ich mit meinem Cursor kurz vor "bar" im linken Puffer <etwas tun> und schnell sehen, wo sich "bar" im rechten Puffer befindet.
Hinweis: Dies hängt mit zusammen. Wie finde ich Text in mehreren offenen Puffern? in dem Sinne, dass wenn ich eine Isearch über den "anderen" Puffer durchführen könnte, es tun würde, was ich will. Aber keine der Antworten dort ist genau das, was ich will:
- Die
occur
basierten Lösungen öffnet sich ein neues Fenster , das zeigt Linien passende, während Ich mag würde meine zwei Fenster angezeigt noch halten - ich werde tatsächlich für den Kontext in den anderen Puffer suchen werden um das Spiel, so dass nur die passende Linie zeigt ist nicht sehr hilfreich. multi-isearch-buffers
Ich muss die Liste der Puffer jedes Mal angeben, wenn ich diese Suche durchführen möchte (häufig), anstatt sie automatisch als die beiden angezeigten Puffer aufzunehmen. Noch wichtiger ist, wenn ich von einem Fenster aus starte und die Suche durchführe und die Übereinstimmung im anderen Puffer finde, wird dieser Puffer in diesem Fenster angezeigt, sodass beide Fenster denselben (anderen) Puffer anzeigen. Dann setzt Cg alles zurück und ich kann das im anderen Puffer hervorgehobene Wort nicht mehr sehen.icicle-search
hat so viele Funktionen, dass einer von ihnen dies möglicherweise kann, aber ich konnte nach einem flüchtigen Blick in die Dokumentation nichts finden.
C-s C-w C-x o C-s C-s
sich für mich nicht so schlecht an. (Sie brauchen keinC-s
Recht nach demC-w
.)C-s C-w C-x o C-s C-s C-x o
Tat in Ordnung scheint.Antworten:
Sie können ein Paket namens verwenden
highlight-global
, das von github erhältlich ist, jedoch nicht auf Melpa (zum Zeitpunkt des Schreibens).Die
highlight-frame-toggle
in diesem Paket definierte Funktion hebt das Wort am Punkt oder den ausgewählten Bereich überall im Rahmen hervor (in allen Puffern). Dies würde jedoch nicht automatisch zu dem hervorgehobenen Wort scrollen, das Sie benötigen. Es wird eine andere Hervorhebungsfarbe ausgewählt, wenn Sie mehr Wörter hervorheben, ohne die früheren Hervorhebungen zu löschen.Hier ist ein Screenshot davon, wie es aussieht:
Klicken Sie hier, um den Screenshot besser anzuzeigen
quelle
helm hat Schnittstellen, die dieses Ziel erreichen können. Ich habe einen Gifcast aufgenommen, um das Helm- Sturzflug - Paket zu demonstrieren :
Nach dem Start der
helm-swoop
Suche kann ich entweder auf weniger Kandidaten eingrenzen, indem ich weitere durch Leerzeichen getrennte Token eingebe, oder drückenC-p
undC-n
zum nächsten wechseln und gleichzeitig im Zielpuffer scrollen.quelle
helm-swoop
.C-s C-w C-x o C-s C-s C-x o
(was ich jetzt benutze und eigentlich in Ordnung zu sein scheint).Wie wäre es
highlight-regexp
, wenn Sie das aktuelle Symbol (oder Wort, Region usw.) im anderen Fenster markieren?Hier sind einige Funktionen, die funktionieren könnten. Der erste findet das Symbol an der Stelle, springt dann zum anderen Fenster und hebt es hervor. Der zweite springt zum anderen Fenster und entfernt die Markierungen.
In beiden Fällen springt dies zurück, sodass das aktuelle Fenster am Ende aktiv bleibt. Sie sind sich nicht sicher, ob Sie das möchten, andernfalls lassen Sie den letzten
other-window
Anruf aus.Diese Funktionen könnten auch verbessert werden, indem nach dem aktiven Bereich gesucht und dieser abgeglichen wird. Umgang mit dem Fall, in dem kein anderes Fenster sichtbar ist; usw.
quelle
highlight-frame-toggle
in einer anderen Antwort erwähnte Befehl scheint eine ausgefeiltere Version davon zu sein, also müssen Sie wohl nicht Ihren eigenen rollen.