Zaczynając od pustej tablicy, jak mogę uzyskać dokument zawierający
1
2
3
4
5
6
7
8
9
10
…
100
Żeby było jasne, nie chcę, aby te liczby były wyświetlane na marginesie; Chcę je wstawić do samego dokumentu.
line-numbers
text-generation
200_sukces
źródło
źródło
<C-r>=range(1,100)
.Oprócz czystego vima Undo
:put =range(1,100)
(który faktycznie pozostawia pustą linię do góry), możesz, w zależności od systemu operacyjnego, użyć jednego z jego poleceń. Na przykład na komputerze z systemem Unix / Linux:Powyższe działa poprzez przesłanie całego (pustego) bufora do
seq
, który ignoruje jego dane wejściowe i po prostu wypisuje liczby od 1 do 100. Vim następnie zastępuje cały bufor danymiseq
wyjściowymi.Jest to przydatne, gdy znasz już sposób wiersza polecenia, aby uzyskać to, czego chcesz.
źródło
Dla przypomnienia i zdecydowanie nie najkrótszej drogi (zobacz niesamowite rozwiązanie @ Undo), ale sekwencja klawiszy też to zrobi:
i1EscqaYpCtrl+aq98@a
Pozwól, że ci to podzielę:
i1<Esc>
- wstaw cyfrę 1, a następnie wróć do trybu poleceńqa
- zacznij rejestrować makro w rejestrze „a”Y
- skopiuj bieżącą linięp
- wklej bieżącą linię (kursor również przejdzie do wklejonej linii)<Ctrl>a
- zwiększ kolejny numer na linii, dzięki czemu będzie to 2q
- zatrzymaj rejestrowanie makra (był rejestr „a”)98@a
- powtórz makro w rejestrze „a” 98 razyźródło
Oto inne podejście, które wymaga nowszego Vima (coś w rodzaju 7.4.800)
Zakłada to, że pusty bufor i „1” w rejestrze a. Najpierw wprowadź 100 1 do swojego bufora "a100P.
Następnie wizualnie wybierz linie od 2 do 100 :2EnterVG.
Teraz naciśnij gCtrl+ A.
Przeczytaj pomoc na
:h v_g_CTRL-A
źródło
:h g_CTRL-A
Wiem, że to pytanie jest naprawdę stare, ale jest też inny sposób, aby to zrobić. Spróbuj tego:
99o<esc>
otworzy tylko 100 pustych linii. Następnie uruchamiamy polecenie zastępcze:źródło