Wie verschiebe ich einen ausgewählten Textbereich in Emacs um eine bestimmte Anzahl von Leerzeichen?


Antworten:


40

Verwenden Sie den Befehl indent-rigidly, an den C-x TABstandardmäßig gebunden ist .

Sie können die Anzahl der einzurückenden Leerzeichen mithilfe eines Präfix-Arguments wie z C-5 C-x TAB.

Oder Sie können den Befehl aufrufen und dann mit den Pfeilen nach links / rechts die Einzugsebene interaktiv anpassen.


Wie fügt man ein Präfix-Argument hinzu?
Vass

1
Versuchen Sie beispielsweise C-5 C-x TAB, die aktuelle Region um 5 Leerzeichen einzurücken.
Glucas

toll, aber warum bewegt sich die erste Zeile nicht so gut? Ich muss den letzten Teil der Linie über der Auswahl greifen, um den Satz von Linien zu machen, den ich verschieben möchte.
Vass

1
Sie sollten nichts aus der vorherigen Zeile auswählen müssen, aber Sie möchten am Anfang der ersten Zeile, die Sie einrücken möchten, auswählen. Zum Beispiel, C-aum an den Anfang der Zeile C-SPCzu springen, um den Bereich zu markieren, C-n C-num ein paar Zeilen C-5 C-x TABnach unten zu springen und um diese beiden Zeilen einzurücken.
Glucas

1
"Verwenden Sie die Pfeile nach links / rechts, um die Einzugsebene interaktiv anzupassen" Wirklich? Groß! Ich wusste das nicht und musste manchmal raten, wie viele Leerzeichen ich hinzufügen oder entfernen muss. Ich hoffe das kann helfen.
imz - Ivan Zakharyaschev

9

Wenn Sie python-mode.el verwenden C-c >oder C-c <um Blöcke nach links oder rechts zu verschieben


Wie kommt es, dass die erste Zeile der Auswahl nicht verschoben wird, wenn ich nicht den letzten Teil der darüber liegenden Zeile anwähle?
Vass

Ich kann dieses Verhalten nicht reproduzieren. Alle Zeilen einer Auswahl werden verschoben. Emacs 24.4
Lompik

Glucas 'Kommentar besagt, dass dies passieren wird, wenn Sie nicht vom Anfang der Zeile auswählen
Vass

6

Mit dem string-rectangleBefehl ( C-x r t) können Sie beliebigen Text (einschließlich Leerzeichen) in einen ausgewählten Bereich einfügen.

Angenommen, Sie haben diesen Textblock und möchten 5 Leerzeichen vor allen Zeilen einfügen.

abc
  def
    ghi

Wählen Sie zuerst eine "0 column" -Region wie unten gezeigt aus (der Punkt befindet sich auf dem Zeichen "a" und die Markierung befindet sich in derselben Spalte in der Zeile mit "ghi":

▮bc
  def
▯   ghi

string-rectangleFügen Sie nun mit den Text ein, den Sie in den ausgewählten Bereich einfügen möchten. In diesem Beispiel fügen wir 5 Leerzeichen in alle Zeilen ein, einschließlich und zwischen dem Punkt und der Marke.

C-x r t M-5 SPC RET

Dies ergibt den unten angegebenen, stark eingerückten Text.

     abc
       def
         ghi

4

Es gibt C-x TAB(gebunden indent-rigidly). Geben Sie ein Präfix-Argument an, um anzugeben, nach wie vielen Leerzeichen Sie einrücken möchten. Negativ entfernt so viele Leerzeichen.


0

Ich habe festgestellt, dass durch Drücken von Alt-4 und dann SPC das gewünschte Ergebnis erzielt wird. Ich bin nicht sicher, ob dies der beste Weg ist, aber es funktioniert auch.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.