Ich möchte ein Zeichen herausziehen und an der ersten Stelle der Zeilenfolge einfügen. Beispielsweise muss ich vor 7 Zeilen einer Datei ein „#“ einfügen.
Kann mir jemand helfen?
Antwort1
Es hängt weitgehend davon ab, was Sie aufrufen vi
. Wenn es wirklich original-vi ist, können Sie dies tun, indem Sie
- Tippen Sie yl, um ein Zeichen beginnend an der Cursorposition eine Zelle nach rechts zu „ziehen“.
- Bewegen Sie den Cursor zur ersten Zeile, in der Sie Text einfügen möchten
- wiederholtes Tippen0PEnter , dabei die sieben Zeilen durchgehen.
In Original-VI konnte man nur einen Zeilenbereich beeinflussen mitexModus. DerexDer Modus vi
akzeptiert einen Bereich, aber der analoge Befehl
:1,7P
würde nichtput
ACharakter, aber versuchen Sie etwas mitLinien. VielmehrexModus, würden Sie eineErsatz, z.B,
:1,7s/^/X/
aber es gibt keine Möglichkeit für eineRegisterwert(die Charaktere, die Siegerissen), das bei der Ersetzung verwendet werden soll.
Weiterführende Literatur:
- ex(POSIX)
- vi(POSIX)
- 4. EX-BEFEHLSMODUS(Elvis-Herausgeber)
- 5. Vorstellung des ehemaligen Redakteurs(ausLernen Sie den vi-Editor kennen)
Antwort2
Hinweis: Diese Antwort funktioniert nur für VIM, nicht für VI.
Sie können es in eine Spalte ziehen, indem Sie:
- Starten im Normalmodus (nicht einfügen).
- Gehen Sie zur ersten Zeile und Spalte (wo Sie den Text einfügen möchten).
- Drücken Sie Ctrl+, Vum in den vertikalen Auswahlmodus zu wechseln.
- Wenn Sie alle Zeilen ausgewählt haben, vor denen Sie Ihren Text einfügen möchten, drücken Sie Shift+ I.
- Nun können Sie entweder
- Fügen Sie Ihren extrahierten Text mit Ctrl+ R, 0(oder einem anderen Register) ein.
- oder schreiben Sie einen beliebigen Text.
- Wenn Sie fertig sind, drücken Sie Esc. Der gleiche Text wird in allen ausgewählten Zeilen angezeigt.
Randbemerkung: Sie können Ihre Vi(m)-Fragen auch hier stellen:vi.stackexchange.com