Vim Befehl, um NUMMERN NUR an der Cursorposition in einer längeren Zahlenfolge zu erhöhen?

8

Ich habe ein paar Fälle, in denen ich folgendes tun möchte

In Datei:

%Vor%

Mit dem Cursor an der ersten Ziffer, möchte ich Strg-A verwenden, um die Ziffer zu erhöhen, so dass ich

bekomme %Vor%

statt

%Vor%

Gibt es dafür intrinsische vim-Befehle?

Andernfalls sollte ich ein schnelles Skript einrichten:

  1. Surround-Ziffer mit vorangestelltem und nachkommendem Leerzeichen
  2. Strg-A zum Erhöhen
  3. Löschen Sie führende und nachfolgende Leerzeichen

Wie so, und dann auf einen Schlüssel zuordnen?

    
Kevin Lee 24.07.2012, 14:07
quelle

2 Antworten

8

Die Inkrementierungsfunktion nimmt eine führende Zahl wie die meisten vim-Befehle. 1000 ctrl+a würde 2234 wie gewünscht zurückgeben. Wenn alle Ihre Nummern 4 Ziffern sind, dann würde dies funktionieren. Oder Sie könnten r2 verwenden, was das aktuelle Zeichen unter dem Cursor durch ein 2 ersetzt, aber das könnte zu spezifisch sein.

Wenn Sie Ihr Skript benötigen, können Sie ein Makro aufzeichnen.

qaa[space][esc]h[ctrl+a]lx

aufgeschlüsselt:

qa - Starten Sie die Aufzeichnung eines q -Makros und speichern Sie, um a

zu registrieren

a[space][esc] - fügen Sie ein Leerzeichen nach der Nummer hinzu

h - gehe zurück zu Nummer

ctrl+a - fügen Sie einen

hinzu

lx bewegt sich nach rechts und löscht Leerzeichen.

Sie sollten keinen führenden Platz hinzufügen müssen, denn wie Sie festgestellt haben, wirkt sich die ctrl+a -Funktion auf die ganze Zahl aus und fügt immer 1 hinzu.

    
Brombomb 24.07.2012, 14:10
quelle
4

Sie könnten dies als s<C-r>=<C-r>"+1<Enter> machen.

Sie können das dann auf etwas anderes abbilden, wie nnoremap g<C-a> s<C-r>=<C-r>"+1<cr> (Sie müssen Strg-v Strg-r verwenden, um <C-r> s einzufügen in dieser normalen Karte).

Schritt für Schritt:

s - Lösche das Zeichen unter dem Cursor und beginne das Einfügen

<C-r>= - Beginne eine Ausdrucksauswertung.

<C-r>" - lege den Inhalt des unbenannten Registers in

  

Siehe: help i_CTRL-r für weitere Informationen zu diesen.

+1<Enter> - füge dem Wert 1 hinzu und vervollständige den Befehl.

    
Conner 24.07.2012 14:24
quelle

Tags und Links