vim findet und ersetzt keine einfache Phrase, die eindeutig vorhanden ist


71

Ich habe ein einfaches Vim-Problem, bei dem Google mir nicht helfen konnte. Alle Gedanken werden geschätzt.

Ich mache die folgende Suche und ersetze:

:s/numnodes/numnodes1/g

In einer Datei mit folgendem Text:

numprocs=0  
numnodes=0

Ich bekomme

E486: Pattern not found

Die Position des grünen Quadrats, die angibt, wo ich mit dem Tippen beginnen würde, liegt deutlich über dem Muster. Ich habe versucht, nach anderen kurzen Phrasen ohne Regex zu suchen, die ebenfalls vorhanden sind und ebenfalls fehlschlagen. Ein einfacher / numnodes hebt Übereinstimmungen wie erwartet hervor. Hat jemand eine Idee, was mit vim los sein könnte?

Antworten:


117

Versuchen :%s/searchphrase/replacephase/g

Ohne das %Symbol stimmt Vim nur mit der aktuellen Zeile überein und ersetzt diese.


15

Versuchen Sie Folgendes:

:%s/numnodes/numnodes1/g

10
Ack, die Zahl vor 's' ist die Zeilennummer, '% "bedeutet' alle Zeilen 'AFAIK.
Wrikken

2
Es ist eine Linienspezifikation. Sie können auch (anstelle von%)., $ verwenden, um beispielsweise von der aktuellen Zeile zu eof zu wechseln
time4tea

Wenn Sie als visuellen Hinweis aus dem visuellen Modus auswählen, können Sie Folgendes verwenden: und es wird automatisch das Zeilennummernmaterial für diese Region ausgefüllt, sodass Sie es innerhalb einer Region ersetzen können.
Alternative

Ich benutze: s / foo / bar / g für immer. Dies ist das erste Mal, dass ich von diesem% gehört habe.
Rick O'Shea
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.