it-swarm.com.de

Wie kann ich einen Block in Emacs auswählen oder markieren?

Ich möchte einen Block in emacs ohne Maus, aber über die Tastatur auswählen oder markieren. Was ist der einfachste Weg, dies von einer Tastatur aus zu tun?

69
systemsfault

Schauen Sie sich das Regionsrechteck in Emacs an.

Kurz gesagt, Sie starten die Auswahl wie gewohnt mit Control-Space, dann töte Region mit Control-xrk und einfügen (oder yank) tötete Block mit Control-xry.

58
Marko

Wenn ich die Frage richtig verstehe, geht es ursprünglich nicht um rechteckige Bereiche.

C-Spcsetzt eine Markierung an der aktuellen Position.

Wenn sich der Cursor hinter dem Cursor befindet, wird der Text zwischen der letzten Marke und der aktuellen Position "ausgewählt" (Sie können dies durch Aktivieren von transient-mark-mode hervorheben. Dies bedeutet jedoch auch, dass Marken gelöscht werden müssen, wenn Sie sie nicht markieren möchten).

Sie können diese Region mit Befehlen wie bedienen:

C-w. . Töte die Region. Dies löscht und versetzt die Region in den Killring.
C-y. . Ruck. Dadurch wird der letzte Ausschnitt aus dem Kill-Ring eingefügt.
M-y. . Zyklus töten Ring. Unmittelbar nach C-y ersetzt dies den abgerissenen Teil durch die anderen Ausschnitte im Killring.
M-w. . Region in Killring speichern. Wie C-w, aber nicht gelöscht.

Dies ist nur die grundlegende Verwendung. Marken haben auch andere Zwecke. Ich empfehle das Tutorial (C-h t).

63
Svante

Emacs 24.4 hat jetzt den Rechteck-Markierungsmodus. C-x-Space, um es aufzurufen.

20

Siehe den Artikel: "Mit rechteckigen Auswahlen arbeiten" , insbesondere den Kommentarbereich. Siehe auch den Abschnitt der Dokumentation im CUA-Modus mit dem Titel "Unterstützung für CUA-Rechtecke". Es gibt auch ein Nice-Video zu Vimeo .

16
edin1

Benutzen Control-Space um eine Markierung zu setzen und den Cursor zu bewegen.

Der transient-mark-mode hebt Auswahlen für Sie hervor. M-x transient-mark-mode.

Sie können Emacs so einrichten, dass dieser Modus standardmäßig mithilfe einer Anpassung aktiviert wird. M-x customize-option RET transient-mark-mode.

6
remvee

Obwohl C-SPC ein üblicher Weg ist, um etwas von Aus zu markieren, wo immer Ihr Punkt ist, gibt es oft schnellere/einfachere Wege, bei denen Nicht explizit zu Start-/Endpunkten bewegt wird ...

Eingebaute Shortcuts für die Auswahl

  • M-h - ein wichtiges Mittel, um einen Absatz markieren. Ein "Absatz" Bedeutet häufig einen Codeblock.

  • C-M-h und [email protected] - für Markierung von Sexps und Defuns, Dies funktioniert für mehrere Sprachen, nicht nur für LISPS.

  • Halten Sie die Umschalttaste gedrückt - eine weitere glatte Art, um während der __.-Bewegung hervorzuheben. Zum Beispiel wählt M-S-f ein ganzes Wort vorwärts. Dies ist shift-select-mode, Und ist in Emacs 24+ standardmäßig aktiviert. Auf einigen (nicht Chiclet) Tastaturen sollten Sie C-S- mit einem einzigen Pinky gedrückt halten können.

Sie können eine dieser Tasten wiederholt drücken, um die Auswahl zu vergrößern.

(HINWEIS: Verwenden Sie häufig C-g, um die Markierung abzubrechen, während Experimentiert.)

Add-Ons

Es gibt einige Add-On-Pakete, die die Auswahl von Regionen und Dingen verbessern. Diese sind alle schön zusammen und eignen sich für verschiedene Fälle. Nutze sie alle!

  • Expand-Region: Expand Region vergrößert die ausgewählte Region um semantische Einheiten. Drücken Sie einfach die Taste .__, bis Sie das gewünschte ausgewählt haben. C-= ist eine empfohlene Bindung dafür. Schlagen Sie ein paar Mal darauf, um das zu bekommen, was Sie brauchen.

  • Easy-Kill: Mit M-w und Einer Mnemonik können Sie verschiedene Arten von Dingen auswählen, z. B. Wörter, Sexps, Listen usw.

  • Zop-to-Char: Wie zap-to-char, bietet jedoch Nice-Auswahl und andere Menügesteuerte Aktionen.

6
Micah Elliott

... und falls Sie Ubuntu und C-spc funktioniert bei Ihnen nicht: Sie müssen die IBus-Tastenkombination "Nächste Eingabemethode" wie in deaktivieren

führen Sie ibus-setup aus und ändern Sie die Schlüsselbindung für die "nächste Eingabemethode" in etwas anderes (oder löschen Sie sie vollständig, indem Sie auf die Schaltfläche "..." und dann auf die Schaltfläche "Löschen" klicken).

Zitat aus eine Antwort auf eine SO Frage.

1
serv-inc

Drücken Sie bei Emacs 25 einfach C-Space und bewegen Sie dann den Cursor an die gewünschte Stelle, um den gewünschten Textbereich hervorzuheben bzw. auszuwählen. Danach benötigen Sie möglicherweise folgende Befehle:

  • C-w zum Schneiden.
  • M-w zum Kopieren.
  • C-y zum Einfügen.
0

Um die Antwort von Edin Salkovic zu erweitern, können Sie im CUA-Modus eine visuelle Blockauswahl starten. Es gibt viele Verknüpfungen zur Steuerung der Blockauswahl, die in Dokumentation der CUA beschrieben sind.

0
Jezz