Ich habe den folgenden Code:
Hello
There
I am some code
Und möchten Code davor hinzufügen, wie zum Beispiel:
I said Hello
I said There
I said I am some code
Wie würde ich also jeder Zeile ein Präfix hinzufügen?
quelle
Ich habe den folgenden Code:
Hello
There
I am some code
Und möchten Code davor hinzufügen, wie zum Beispiel:
I said Hello
I said There
I said I am some code
Wie würde ich also jeder Zeile ein Präfix hinzufügen?
Sie können ein Präfix mit hinzufügen M-x string-rectangle
, an das gebunden ist C-x r t
. Dies ist Teil einer Reihe von Befehlen, die rechteckige Auswahlen verarbeiten . Dieser fügt Text in jede Zeile des Rechtecks ein.
Setzen Sie zunächst die Markierung am Anfang der ersten Zeile und bewegen Sie den Cursor zum ersten Zeichen der letzten Zeile, der Sie ein Präfix hinzufügen möchten:
*Hello
There
▮I am some code
Verwenden Sie dann C-x r t
, geben Sie Ihr Präfix ( I said
) ein und drücken Sie RET
. Dies fügt den Text zu jeder Zeile im Rechteck hinzu:
I said Hello
I said There
I said I am some code
Wenn Sie den Cursor nicht in derselben Spalte wie Ihre Marke positionieren, wird dieser Teil des Rechtecks überschrieben:
*Hello
There
I am▮ some code
mit dem gleichen Befehl ergibt sich:
I said o
I said e
I said some code
M-x string-insert-rectangle
. Es ist sehr ähnlich,string-insert-rectangle
fügt jedoch am Anfang jeder Zeile der Auswahl ein, während esstring-rectangle
ersetzt wird. Bei letzterer muss die Auswahl präziser sein, wenn Sie nichts überschreiben möchten.Sie können den Mehrfachcursor-Modus verwenden , um einen Cursor auf jede Zeile zu setzen. Anschließend wird jeder eingegebene Text in jede Zeile eingefügt.
Sie würden mit dem Punkt am Anfang des Codestücks beginnen:
Dann C->zweimal drücken. (Dies ist die vorgeschlagene Schlüsselbindung; Sie müssen sie selbst einrichten.) Dadurch werden in den folgenden beiden Zeilen zwei zusätzliche Cursor erstellt:
Dann tippe
I said
. Der Text wird in jede Zeile eingefügt:Drücken Sie RETzum Schluss, um den Mehrfachcursor-Modus zu verlassen und den Punkt am letzten Cursor zu belassen:
Hier ist ein Video, das zeigt, wie es funktioniert.
quelle
Persönlich bevorzuge ich
replace-regexp
(ersetze "^" durch "Ich sagte").quelle
Eine andere Option ist die Verwendung von Makros, die mehr Aufgaben als rechteckige Auswahlen oder mehrere Cursor verarbeiten können, auch wenn dies in diesem speziellen Fall etwas umständlicher ist.
Positionieren Sie den Cursor am Anfang der ersten Zeile und drücken Sie F3, um die Aufnahme zu starten, fügen Sie den Text ein, bewegen Sie den Cursor an den Anfang der nächsten Zeile und drücken Sie F4, um die Aufnahme zu stoppen. Drücken Sie jetzt F4erneut, um das Makro C-2 F4zu wiederholen, um es zweimal zu wiederholen, oder C-0 F4um es zu wiederholen, bis ein Fehler (z. B. Zeilenmangel) auftritt.
quelle
Sie könnten das Böse installieren und es auf eine beliebige Anzahl von vi-ähnlichen Arten tun - ich bevorzuge die visuelle Blockauswahl mit Ctrl+ V, um jede Zeile zu markieren, und dann Shift+, Ium den einzufügenden Text einzufügen, und dann, um den ESCEinfügemodus zu beenden und Der Text wird jeder Zeile vorangestellt. Dies ist der Auswahl von Emacs-Rechtecken sehr ähnlich, jedoch mit ein paar weniger Tastenanschlägen.
quelle
Dies ist der Antwort von Artagnon sehr ähnlich,
replace-regexp
ist aber an keinen Schlüssel gebunden.Also verwende ich eigentlich,
query-replace-regexp
was standardmäßig gebunden ist,C-M-%
und ersetze dann^
mit dem angegebenen PräfixI said
und tippe dann ein!
, um alle zu ersetzen, ohne weitere Aufforderung.quelle
Wenn Sie
cua-mode
aktiviert haben, dann:I said
als einzufügender TextIch bevorzuge die
cua-mode
Arbeitsweise im Vergleich zum Emacs-Standardrechteck, wo das Äquivalent wäre:I said
RET um text einzufügenDas
cua-mode
spart zwei Tastendrücke im Vergleich zum Standard-Emacs-Rechteck.Aber für mich, der zusätzliche Vorteil , CUA-Modus ist , dass ich anfügen Text auf das Rechteck (ich persönlich weiß nicht , wie hängen Sie Text mit Standard - Emacs Rechteck). Im Cua-Modus ist es nur ein RETTastendruck, der vor dem eingegeben wird
I said
.quelle