Wie kann ich ausgehend von einer leeren Tafel ein Dokument erhalten, das Folgendes enthält?
1
2
3
4
5
6
7
8
9
10
…
100
Ich möchte nicht, dass diese Zahlen am Rand angezeigt werden. Ich möchte, dass sie in das Dokument selbst eingefügt werden.
line-numbers
text-generation
200_erfolg
quelle
quelle
<C-r>=range(1,100)
.Zusätzlich zu Undos pure-vim
:put =range(1,100)
(was Sie tatsächlich mit einem leeren Zeilenumbruch belässt) können Sie abhängig von Ihrem Betriebssystem einen seiner Befehle verwenden. ZB auf einer Unix / Linux-Box:Das obige funktioniert, indem der gesamte (leere) Puffer an weitergeleitet wird
seq
, der seine Eingabe ignoriert und nur die Zahlen 1 bis 100 ausgibt. Vim ersetzt dann den gesamten Puffer durchseq
die Ausgabe des Puffers .Dies ist nützlich, wenn Sie bereits mit einer Befehlszeilenmethode vertraut sind, mit der Sie das Gewünschte erreichen können.
quelle
Für die Aufzeichnung und definitiv nicht der kürzeste Weg (siehe @ Undos großartige Lösung), aber eine Folge von Tastenanschlägen wird es auch tun:
i1EscqaYpCtrl+aq98@a
Lassen Sie mich das für Sie aufschlüsseln:
i1<Esc>
- Geben Sie die Nummer 1 ein und kehren Sie in den Befehlsmodus zurückqa
- Aufzeichnung eines Makros im Register "a" startenY
- kopiere die aktuelle Zeilep
- füge die aktuelle Zeile ein (der Cursor bewegt sich auch auf die eingefügte Zeile)<Ctrl>a
- Inkrementiere die nächste Zahl in der Zeile und mache es 2q
- Aufzeichnung des Makros beenden (war Register "a")98@a
- Das Makro in Register "a" 98 mal abspielenquelle
Hier ist ein anderer Ansatz, der ein neueres Vim benötigt (so etwas wie 7.4.800)
Dies setzt einen leeren Puffer und '1' in Register a voraus. Geben Sie zuerst 100 1 in Ihren Puffer ein "a100P.
Wählen Sie dann visuell die Zeilen 2 bis 100 aus :2EnterVG.
Drücken Sie jetzt gCtrl+ A.
Lesen Sie die Hilfe unter
:h v_g_CTRL-A
quelle
:h g_CTRL-A
Ich weiß, diese Frage ist wirklich alt, aber es gibt auch eine andere Möglichkeit, dies zu tun. Versuche dies:
99o<esc>
öffnet nur 100 Leerzeilen. Dann führen wir einen Ersatzbefehl aus:quelle