Zielen Sie in vim für eine Textersetzung nur auf eine Zeile

Zielen Sie in vim für eine Textersetzung nur auf eine Zeile

Gibt es in vi(m) eine Möglichkeit, eine bestimmte Zeile in einer Datei für eine Zeichenfolgenersetzung auszuwählen?

Ich muss häufig SSL-SHA-Fingerabdrücke von Webservern zu meiner Mercurial .hgrc hinzufügen. Ich kann die erforderliche Signatur ganz einfach von Chrome abrufen, indem ich auf das Vorhängeschloss doppelklicke und mir die Zertifikatsdetails ansehe, aber ich erhalte die Signatur mit Leerzeichen als Trennzeichen und nicht mit den von Mercurial gewünschten Doppelpunkten als Trennzeichen.

06 32 1C C5 8A 49 77 85 C5 89 6F 67 75 96 F0 43 77 96 EB 90

Beispiel ausGoogle Code.

Gibt es eine Möglichkeit:

  1. Kopiere den besagten Fingerabdruck in meine Zwischenablage
  2. Meine .hgrc mit vi(m) bearbeiten
  3. Wechseln Sie in den Einfügemodus, um den Fingerabdruck einzufügen
  4. Zielen Sie genau auf diese Linie mit einem

    :s/ /:/g

  5. Speicher die Datei

Im Moment kann ich den Fingerabdruck in eine neue Datei einfügen, die Ersetzung vornehmen und ihn mit einem:r Dateiname, aber das ist ein zusätzlicher Schritt, den ich gerne überspringen würde.

Antwort1

Herausgefunden:

Bewegen Sie den Cursor auf die Zeile, die Sie ändern möchten, und gehen Sie wie folgt vor:

.s/ /:/g

Der „.“ vor dem Ersetzungsbefehl teilt vi(m) mit, dass Sie nur die aktuelle Zeile ändern möchten.

Referenz:http://www.kingcomputerservices.com/unix_101/search_and_replace_with_vi_part_1.htm

Antwort2

Wenn Sie es nach Zeile N einfügen möchten:

:N put =substitute(@+, ' ', '', 'g')

Dateiende: N=$; Dateienanfang: N=0. @+ ist das Zwischenablageregister (wenn die GUI ausgeführt wird).

Antwort3

Einfach, :s/ /:/greicht völlig aus.

Der :substituteBefehl funktioniert standardmäßig nur in der aktuellen Zeile.

Der /gglobale Modifikator bedeutet, dass alle Übereinstimmungen im angegebenen Bereich ersetzt werden, nicht die gesamte Datei.)

Antwort4

willst du das tun?

echo "06 32 1C C5 8A 49 77 85 C5 89 6F 67 75 96 F0 43 77 96 EB 90" >> <filename>

verwandte Informationen