Wie wechsle ich schnell zwischen Fenstern?
Ich habe oft mehrere Fenster geöffnet und muss zwischen ihnen wechseln. Im Moment C-x o
komme ich zu dem, den ich will. Gibt es dafür einen effizienteren Workflow?
window
cycling
navigation
Sibi
quelle
quelle
Antworten:
Ich bevorzuge offensichtlich ein Ass-Fenster dafür. Sie können zwischen sichtbaren Fenstern und Rahmen wechseln. Es ist in MELPA, Sie können es schnell installieren. Sie müssen es nur noch binden:
Oder verwenden Sie einen kürzeren Tastenakkord, da das Wechseln des Fensters häufig vorkommt:
Zusammenfassung von
ace-window
Es ist ein Ersatz für
other-window
. Im Gegensatz zu letzterem müssen Sieace-window
zum Auswählen eines Fensters nie zweimal oder öfter aufrufen : Sie wählen ein Fenster aus, das Sie in einem Aufruf (möglicherweise über mehrere Frames hinweg) aufrufen möchten.Sie
ace-window
können nicht nur Fenster wechseln, sondern auch mehr (Fenster löschen oder tauschen usw.) . Weitere Informationen finden Sie in der README-Datei .quelle
ace-window
und dann gesehen,switch-window
was ungefähr dasselbe zu tun scheint, außer dass die Buchstaben ausgeprägter sind. Scheint lustig, wir haben beide Pakete.switch-window
bis ich mich beiace-window
MELPA anmeldete.ace-window
, es hat mehr Anpassungsmöglichkeiten als andere Pakete, denke ich. Eine mögliche Hilfe für die Zukunft ist die Schlüsselbindung für eine Funktion, die der Smart - Swap - Aktion ähnelt, jedoch dieses Fenster verschlingt, was dazu führt, dass ein größeres Fenster an einem Punkt und ein kleineres ausgewähltes Fenster (das gegessene Fenster) vorhanden sind Fenster auf). Das Verhältnis sollte in diesem Fall als eine Hälfte, ein Viertel oder ein Drittel bestimmt werden.Ein Weg ist zu benutzen
windmove
. Mit den Standard-Tastenkombinationen können Sie in das Fenster neben dem derzeit aktiven Fenster wechseln.Es ist in Emacs integriert, sodass Sie nichts installieren müssen. aktiviere es einfach mit dem folgenden minimalen Setup in deiner Init-Datei:
Sie können dann zu den benachbarten Fenstern wechseln die folgenden Tasten (wo der Pfeil intuitiv definiert die Richtung verwendet , in dem Sie sich bewegen):
S-<left>
,S-<right>
,S-<up>
,S-<down>
.Wenn Sie stattdessen lieber einen anderen Modifikator verwenden möchten shift, können Sie ihn als Argument für angeben
windmove-default-keybindings
. Zum Beispiel:oder
Weitere Informationen im Emacs Wiki .
quelle
(windmove-default-keybindings 'meta)
wie in EmacsWiki vorgeschlagen.Shift-arrow
) , aber wenn Sie einen großen Monitor mit vielen Spalten haben, wird eine solche Bewegung schnell unhandlich. Es wäre interessanter, Fenster / Teilungen irgendwie aufzuzählen. Wieace-window
, aber mit weniger Tastendrücken und einem offensichtlichen Algorithmus, um die gewünschte Zahl sofort herauszufinden.Sie können
other-window
eine einfachere Tastenfolge festlegen.Zum Beispiel habe ich
C-.
gebundenother-window
undC-,
gebunden, um zum vorherigen Fenster zu gehen.Dies ist besonders nützlich, um mehrere Fenster zu verschieben. Sobald Sie die Strg-Taste gedrückt halten, müssen Sie nur eine einzige Taste drücken, um zum nächsten Fenster zu gelangen. Dies ist viel einfacher als drei Tastendrücke pro Zug.
quelle
C-x o
fürother-window
ist einer der wenigen soliden Anwärter auf den Titel "Worst Default Emacs Shortcut". Meine Lösung (ähnlich wie zck) bestand darinother window
, eine (wesentlich) einfachere Tastenfolge wiederherzustellen - an die ich mich gebunden habeC-;
(und meineCaps-Lock
ist so getauscht,Ctrl
dass es nur ein kurzes Antippen der kleinen Finger dauert). Übrigens bin ich total abhängig von bestimmten Funktionen vonhelm
undicicles
(dh ich bin nicht "Anti-Pakete" oder so); Ich denke nur, dass eine einfache Lösung hier am besten funktioniert.M-o
fürother-window
. Einige Modi haben bereitsM-o
verbindlich, insbesonderediff-mode
,ggtag-mode
undibuffer-mode
. Sie müssen es in jeder Moduszuordnung manuell entbinden.unbind-key
zur Verfügung gestellt vonbind-key.el
ist sehr nützlich.M-o
auch, und habeM-O
gebunden,ace-window
wenn ich die zusätzliche Kraft brauche.Fensternummerierung.el!
Ich weise den Hotkey ", 1", ", 2", ", 3" zu, um ein bestimmtes Fenster zu wechseln (bitte beachten Sie, dass ich den Böse-Modus verwende)
Außerdem zeige ich die Fensternummer in der Moduszeile in PINK-Farbe unterstrichen an.
Es ist ein visueller Hinweis, den Sie niemals ignorieren können.
Das ist der schnellste Weg , um das Fenster zu wechseln.
Überprüfen Sie https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-evil.el und https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-modeline .el für mein Setup.
Sylvain Benner hat meine Idee in Spacemacs übernommen, aber die Tastenkombinationen sind unterschiedlich . Wenn Sie also Spacemacs verwenden, erhalten Sie die schnellste Lösung.
quelle
window-number
mit,M-<num>
um schnell s / w Fenster zu wechseln. Ein ähnliches Konzept wie diesesOhne zusätzliche Add-Ons können Sie weiterhin
C-x o
ein optionales Präfix verwenden, um so viele Fenster zu überspringen. ZB:C-u 1 C-x o
Geht zum nächsten Fenster in der Reihenfolge (dh was Sie mit plain erhalten würdenC-x o
),C-u 2 C-x o
geht zwei Fenster weiter,C-u 3 C-x o
geht drei Fenster weiter und so weiter.Ein Auszug aus dem
other-window
Docstring (die Funktion, die aufgerufen wird vonC-x o
:quelle
Einige Leute erinnern sich vielleicht an den Editor Brief (lustig genug von einer Firma namens Underware produziert).
Es hatte eine gute Möglichkeit, zwischen sichtbaren Fenstern zu wechseln. M-Pfeil würde den Cursor direkt in der Richtung der Pfeiltaste in das Fenster bewegen.
Also, ich abgebildet , die
winmove-left
,winmove-right
,winmove-up
undwinmove-down
FunktionenM-left
,M-right
,M-up
undM-down
Tasten wie in meiner .emacs - Datei folgt -Jetzt kann ich mühelos zwischen den Fenstern wechseln, unabhängig davon, wie überladen die Konfiguration ist ... Und es kann heutzutage mit der Größe der Displays ziemlich überladen werden ...
quelle
(windmove-default-keybindings 'meta)
!Wenn Sie Icicles dann
C-x o
können Sie auswählen , Fenster durch Namen (oder Radfahren).Ohne Präfix arg
C-x o
ist wie gewohnt, esother-window
sei denn, der Frame hat nur ein Fenster. In diesem Fall ist esother-frame
.Mit einem Präfix arg,
C-x o
ist ein Multibefehl , mit dem Sie nach Namen (oder durch Radfahren) zwischen Fenstern oder Frames navigieren können. Zum Navigieren zwischen Fenstern werden mehrere Befehle verwendeticicle-select-window
. Navigation zwischen Frames verwendeticicle-select-frame
.Welche Navigation verwendet wird, hängt vom Präfix arg ab:
Null prefix arg (z
C-0
): Wenn der ausgewählte Rahmen mehrere Fenster hat, dann ist diesicicle-select-window
mit Fenstern in dem gleichen Rahmen als Kandidaten. Ansonsten (Einzelfensterrahmen) ist diesicicle-select-frame
.C-u
: Wenn der ausgewählte Frame mehrere Fenster hat, sind diesicicle-select-window
Fenster aus allen sichtbaren Frames als Kandidaten. Ansonsten ist das soicicle-select-frame
.C-u C-u
:icicle-select-window
, mit Fenstern aus allen Frames als Kandidaten (einschließlich symbolisierter oder ausgeblendeter Frames).Wie immer in Icicles können Sie (a) Vervollständigung kombinieren , indem Sie Text eingeben, um den Satz übereinstimmender Kandidaten (in diesem Fall Fenster- oder Frame-Namen) einzugrenzen , und (b) zwischen übereinstimmenden Kandidaten wechseln.
quelle
Verwenden Sie einen Tastenakkord, um schnell zwischen den Fenstern zu wechseln. Ich finde es viel schneller als nach einer Modifikatortaste zu greifen (und auch meine Hände weniger zu belasten).
Ich wähle ein Paket aus
ace-window
, mit dem Sie einfacher als nur durch mehrere Fenster navigieren könnenother-window
.Um dies nutzen zu können, benötigen Sie natürlich
key-chord
undace-window
, beide sind in melpa verfügbar.quelle
ace-window
die Arbeit so ist, wie in der Antwort von @abo-abo. Es fällt mir auf, dass in diesem Zusammenhang die spezielle Tastenkombination eher als Kommentar als als Antwort sinnvoll wäre. Nur meine zwei Cent.key-chord
sehr leicht zugängliche Tastenkombinationen binden. Die Beispielbindung vonxo
ist schneller alsC-x o
(Tiefe von eins gegen zwei). Diese Antwort könnte umformuliert werden, um zu betonen, dass die Antwort orthogonal zu den anderen Antworten zur Funktionsauswahl ist (undace-window
nur eine von vielen Möglichkeiten ist, die auf die beschriebene Weise eingeschränkt werden könnten). Behalte diese Antwort als eindeutig!Einige gute Antworten hier, ich bin auch ein Fan von WinMove, aber ich binde es an C-, weil der Organisationsmodus M- zum Bearbeiten von Überschriften verwendet
Wirklich gut wird es, wenn Sie es mit Hydra kombinieren . Nach den Beispielen in ihrem Wiki habe ich mein eigenes Monster erstellt:
Auf diese Weise kann ich die Fenster ändern, ihre Größe ändern, Puffer von Fenster zu Fenster verschieben, Puffer wechseln, Puffer löschen und sogar Fensterkonfigurationen über den Winner-Modus rückgängig machen. Zum Verlassen der Hydra drücken Sie einfach den Pfeil oder eine andere Taste, die sich nicht in der Hydra befindet. Die "Hydra-Move" -Funktionen finden Sie in den Hydra-Beispielen. Das Tolle an Hydra ist, dass ich mich nicht an all diese Tastenkombinationen und ihre "Modifikation" erinnern muss. Sobald Sie in der Hydra sind, ist alles als ein einziger Schlüssel verfügbar Drücken Sie.
quelle
(windmove-default-keybindings 'control)
.Wenn Sie verwenden
evil-mode
, können Sie einfach ein numerisches Präfix mitC-w C-w
(evil-window-next
) verwenden, um das gewünschte Fenster auszuwählen. Also:1 C-w C-w
wählt das erste Fenster in zyklischer Reihenfolge aus,3 C-w C-w
wählt das dritte Fenster in zyklischer Reihenfolge aus und so weiter.quelle
Mit Ace Jump können Sie mit Ihrem Mauszeiger zu allen Wörtern auf einem Bildschirm navigieren, unabhängig davon, in welchem Fenster oder Rahmen sie sich befinden. Dies unterscheidet sich also nicht von der Verwendung von Ace Window oder Switch Window.
Ein Vorteil könnte sein, dass Sie beim Springen von Fenstern auch Ihren Mauszeiger mit einiger Präzision platzieren können.
Ich finde es immer noch etwas umständlich oder ablenkend und benutze
windmove
mehr, weil es sehr einfach ist, aber benutze immer noch Ace Jump, wenn ich in einem anderen Fenster oder Frame gelesen habe und mich an eine Stelle dort bewegen möchte.quelle
Wie üblich gibt es hundert verschiedene Möglichkeiten, dies zu erreichen. Mein bevorzugter Weg ist die Verwendung von NumberedWindows . Ich stelle dann die folgende Tastenkombination mit Super und den Tasten 1-9 ein.
Ich gehe auf dieses genaue Thema mit einem kürzlich erschienenen Beitrag von mir ein, den Sie auf Afternoon Coder lesen können .
quelle
Sie können sich auch dafür entscheiden, switch-window als visuellen Ersatz für zu verwenden
C-x o
quelle
switch-window
über alle anderen zu verwenden?