Wie zu wählen oder einen Block in Emacs hervorheben?
Frage
Ich möchte einen Block in Emacs wählen oder zu markieren, ohne die Maus zu verwenden, aber es von der Tastatur wie vim visuellen Modus tun. Was ist der einfachste Weg, dies von einer Tastatur zu tun?
Lösung
Werfen Sie einen Blick auf regions Rechteck in Emacs.
Kurz gesagt, starten Sie Ihre Auswahl wie gewohnt mit Kontrolle - Space , dann Region töten mit Kontrolle - x r k und Einfügen (oder yank ) getötet Block mit Kontrolle - x r y .
Andere Tipps
Wenn ich die Frage richtig verstanden hat, ist es ursprünglich nicht etwa rechteckige Bereiche.
C-Spc
setzt eine Markierung an der aktuellen Position.
Überall dort, wo Sie den Cursor danach ist der Text zwischen der letzten Markierung und die aktuelle Position wird als „ausgewählt“ (Sie können diese hervorheben, indem transient-mark-mode
aktivieren, aber das bedeutet auch, dass die Markenpunkte gelöscht werden, wenn Sie nicht wollen Highlight ).
Sie können mit Befehlen wie auf diesem Gebiet tätig sind:
C-w
. . Kill-Region. Dies löscht und stellt die Region in den Kill-Ring.
C-y
. . Mit einem Ruck ziehen. Dies fügt den letzten Schnipsel aus dem Kill-Ring.
M-y
. . Zyklus Kill-Ring. Unmittelbar nach C-y
, ersetzt diese die zerrte Teil von den anderen Schnipsel in den Kill-Ring.
M-w
. . Sparen Region in Kill-Ring. Wie C-w
, aber nicht gelöscht.
Dies ist nur die grundlegende Verwendung. Marks hat andere Anwendungen auch. Ich empfehle das Tutorial ( C-h t
).
Emacs 24.4 jetzt hat Rechteck-mark-Modus. C-x Raum rufen Sie es.
Siehe den Artikel: „Arbeiten mit rechteckigen Auswahlen“ , vor allem die Kommentare Abschnitt. Siehe auch den Abschnitt von CUA-Modus Dokumentation dem Titel „CUA Rechteck Unterstützung“. Es gibt auch einen rel="noreferrer">.
Obwohl C-SPC
ist ein gemeinsamer Weg, etwas zu beginnen Kennzeichnung von
wo immer Ihr Punkt ist, gibt es oft schneller / einfachere Wege, die das nicht tun
beinhalten ausdrücklich ... Start / Endpunkte bewegen
Einbau-Auswahl Kombinationen
-
M-h
- ein wichtiges Mittel, um einen Absatz markiert . Ein Absatz" oft bedeutet einen Code-Block. -
C-M-h
undC-M-@
- für Kennzeichnung sexps und Defuns , beziehungsweise. Dies funktioniert für mehrere Sprachen, nicht nur lispelt. -
halten Sie Shift - eine andere Art und Weise glatt markieren während Bewegung. Z. B. wählt
M-S-f
ein ganzes Wort vorwärts. Das istshift-select-mode
. und es ist standardmäßig in Emacs 24+ aktiviert. Auf einigen (nicht Chiclet) Tastaturen, sollten Sie in der Lage seinC-S-
, halten Sie mit einem einzigen Pinky.
Sie können alle diese drücken Sie wiederholt die Auswahl zu wachsen.
(Hinweis: Verwendung C-g
oft abzubrechen, während Kennzeichnung
Experimentieren.)
Add-ons
Es gibt ein paar Add-on-Pakete , die Auswahl der Regionen verbessern und Dinge. Diese werden alle spielen gut zusammen und passen unterschiedliche Verwendung Fälle. Verwenden Sie sie alle!
-
Expand-Region : Expand Region erhöht die ausgewählte Region durch semantische Einheiten. Gerade halten Sie die Taste drücken, bis er wählt, was Sie wollen.
C-=
ist ein Empfohlen für sie bindend. Hit es ein paar Mal zu bekommen, was Sie müssen. -
Easy-Kill- : Verwenden Sie
M-w
und eine Gedächtnisstütze verschiedene Arten von Dingen zu wählen, wie Wörter, sexps, Listen, etc. -
Zop-to-Char : Wie zap-to-char , bietet aber gute Auswahl und andere menügesteuerte Aktionen.
-
diff-hl : Highlight uncommitted geändert Regionen. Verwenden Sie
diff-hl-mark-hunk
wählen / ein großes Stück markieren.
Mit Kontrolle - Space ein Zeichen zu setzen und Ihre Cursor bewegen.
Die transient-mark-mode
wird Selektionen für Sie markieren. M - x transient-mark-mode
.
Sie können Setup Emacs diesen Modus standardmäßig zu aktivieren, eine Anpassung verwenden. M -. x customize-option
RET transient-mark-mode
... und falls Sie verwenden Ubuntu und C-spc funktioniert nicht für Sie: Sie können die IBus "nächste Eingabemethode" Keybinding löschen müssen, wie in
Ausführen
ibus-setup
und den Schlüssel ändern verbindlich für „Nächste Eingabemethode“ auf etwas anderes (oder löschen vollständig durch die Schaltfläche „...“ und dann auf die Schaltfläche ‚Löschen‘ klicken).
Zitat von eine Antwort auf eine Frage SO.
Um Antwort von Edin Salkovic zu erweitern, wenn Sie CUA-Modus verwenden, können Sie eine visuelle Blockauswahl beginnen verwenden. Es gibt viele Verknüpfungen Blockauswahl in Dokumentation von CUA beschrieben zu steuern.
Mit Emacs 25, drücken Sie einfach C - Space und dann den Cursor bewegen, wo immer Sie hervorheben möchten / wählen Sie den Textbereich, der Sie interessiert. Danach können Sie diese Befehle müssen:
- C -. w zum Schneiden
- M -. w zum Kopieren
- C -. y zum Einfügen