Verwendung der Taste g im normalen Modus

70

Im normalen Modus von vim wird das gPräfix für eine Reihe von Befehlen verwendet. Einige Befehle befinden sich irgendwo im Dokument, andere befehlen jedoch die Dateicodierung und das Vertauschen von Groß- / Kleinbuchstaben.

  • ga - Zeichenkodierung anzeigen
  • 10gg - Gehen Sie zu Zeile 10
  • gg - Gehen Sie zu Zeile 1
  • gH - Start Zeilenmodus auswählen
  • gr{char} - virtuell N Zeichen durch {char} ersetzen

Was ist die fehlende Verbindung zwischen all diesen Befehlen?

Natan Yellin
quelle
7
gund zerweitern Sie den normalen Befehlssatz.
Benoit
3
Ich habe immer beides genommen gund zals @Benoit: « g{C}wurde definiert, weil es ein Befehl ist, der häufig benötigt wird, aber andere Zeichen sind bereits gebunden». Viele g*haben eine Mnemonik go to/ global, andere nicht. Im Gegensatz zu g* z*Befehlen, die sich nicht auf Falten beziehen, ist es für mich schwieriger, mich daran zu erinnern. Ich habe sogar persönlich in einem meiner Plugins eine Reihe von gdZuordnungen definiert, die wie folgt gespeichert werden können global diff: «Alle Änderungen anzeigen, die durch eine bestimmte Revision vorgenommen wurden». Und in der Nähe gab es eine Reihe von «Gehe zu»: gu- «Gehe zu Benutzer» - «Vom Benutzer vorgenommene Änderungen anzeigen» und so weiter.
ZyX
2
Der Befehl, zu Zeile 10 zu gelangen, lautet 10ggoder 10G(oder :10<cr>).
Keith Thompson

Antworten:

57

Es gibt keine größere Verbindung zu g-commands: Es ist ein gemischter Haufen. Es ist ein einfaches Präfix und die ungebundenen Schlüssel sind ausgestorben, sodass die weniger verwendeten Karten einen guten Platz dahinter gefunden haben g.

mike3996
quelle
Ich habe festgestellt, dass einige Befehle Mnemonics in Vims Hilfe enthalten. Zum Beispiel gaistget ascii
Natan Yellin
3
@ NatanYellin: Ja. Glücklicherweise sind einige Befehle unter g"Gehe zu" oder "Erhalten", aber zu viele sind ohne eine gute Mnemonik.
Mike3996
3
@SauceMcBoss: Ich habe nur das gleiche gesucht. Sie finden es in der Vim-Dokumentation
James MacAdie
15

Sie sprechen einfach über zwei verschiedene Dinge. In einigen Fällen ist g der kurze Weg von "global" (zum Beispiel für den Bereichsbefehl), für das Verschieben von Linien steht g für goto.

In VIM werden Befehle häufig zur schnellen Verwendung gekürzt.

:help global kann helfen

Übrigens: Für die Liniennavigation habe ich immer die :<lineno>Syntax verwendet.

BigMike
quelle
2
:<lineno>Spam-Befehlszeilenverlauf und schwieriger einzugeben ( <S-;>1<CR>: vier Tastendrücke, zwei oder drei (dvorak) zusätzliche Fingerbewegungen (der Aufwand für die Eingabe der Nummer wird ignoriert) , 1gg: drei Tastendrücke, eine Fingerbewegung). Sie können den Spam-Befehlszeilenverlauf beseitigen, indem Sie eine Zuordnung definieren (z. B. Zuordnung für <CR>im Befehlszeilenmodus, die den Verlauf nach Ausführung des Befehls löscht), aber Sie können sich keine Mühe geben, diese weniger einzugeben.
ZyX
na ja, versuchen Sie, <lineno> durch eine Zahl zu ersetzen, und Sie werden bekommen, was ich sagen wollte ^^: D. Am Ende geht es nur darum, wie Sie alles angefangen haben. Aus Vanilla vi stammend, sind einige VIM-Eigenschaften selbst nach mehr als 10 Jahren glücklichen Vimmens völlig dunkel.
BigMike
«Na ja, versuchen Sie, <lineno> durch eine Zahl zu ersetzen, und Sie erhalten, was ich<S-;>1<CR> oben sagen wollte» : « ». Ich kenne diese Methode, obwohl ich sie normalerweise in Ausdrücken wie gesehen habe execute linenumber.
ZyX
Es ist nur eine Frage, wie Sie es lernen. Beide Wege haben ihre Vor- und Nachteile. Am Ende ist es gut, solange wir uns mit ihnen wohl fühlen. Vergib mir mein wirklich schlechtes Englisch.
BigMike
-3

Erste Benutzung gg , um zum Betteln Ihrer Datei zu springen

Verwenden Sie dann =G, um den gesamten nachgestellten Speicherplatz vom Cursor bis zum Ende der Datei zu entfernen

MaoD
quelle