Wie kann ich bestimmte Schlüsselwörter in vim in Großbuchstaben ändern?

343
Michael Portobello

Wie kann ich bestimmte Schlüsselwörter in vim in Großbuchstaben ändern? Ich würde gerne wissen, da ich in Fortran programmiere und der erforderliche Stil ist, alle inhärenten Funktionen in Großbuchstaben zu haben. Zum Beispiel würde das Schlüsselwort if zu IF wechseln, do zu DO wechseln und zu CALL usw. aufrufen ... Und wenn ich ständig meinen kleinen Finger für die Umschalttaste verwende, dann bekomme ich wiederholte Belastungsverletzungen!

Wenn es eine Möglichkeit gäbe, die Snytax-Hervorhebungsfunktion in vim zu nutzen, wäre das großartig, aber es macht mir nichts aus, eine halbe Stunde damit zu verbringen, alle Schlüsselwörter einzugeben, die ich möchte.

1

1 Antwort auf die Frage

0
Lieven Keersmaekers

Sie können verwenden

%s/\v<(if|do|call)>/\U&\E/gc 

oder verwenden Sie eine Funktion

%s/\v<(if|do|call)>/\=toupper(submatch(0))/gc 

Ändern Sie /gcin, /gwenn Sie nicht vor dem Ändern jedes Matches eine Bestätigung durchführen möchten.

Ahh danke, das ist hilfreich. Gibt es sowieso, dass ich diesen Lauf konstant machen könnte, sobald ich ein Keyword eingebe, wird es alle Großbuchstaben machen? Michael Portobello vor 6 Jahren 0
@MichaelPortobello - Nicht dass es nicht möglich ist, aber Sie könnten den falschen Weg zu diesem Weg gehen. Ich kenne Fortran nicht, aber ich kann mir vorstellen, dass Sie diese Keywords in Kommentaren oder an anderen Stellen haben, an denen Sie keine Großbuchstaben wünschen. Diese Lösung ist für eine einmalige Sache in Ordnung, aber zu spröde, um mit dem Autopiloten gefahren zu werden. Eine bessere Lösung wäre die Verwendung des bereits vorhandenen Syntaxhervorhebungsgerüsts. Das ist jedoch außerhalb meines Wissensstandes. Vielleicht haben Sie mehr Glück, wenn Sie die Frage zu SO stellen. Lieven Keersmaekers vor 6 Jahren 0
OK danke dafür, ich dachte, es könnte ziemlich kompliziert sein. Ich kann diesen Such- und Ersetzungsbefehl einfach einer Taste zuordnen und sie von Zeit zu Zeit verwenden. Ich habe das als Antwort akzeptiert. Michael Portobello vor 6 Jahren 0