답변:
사용 :put
및 range()
:
:put =range(1,100)
상단의 빈 줄을 피하려면 ( kudos to romainl ) 다음을 사용하십시오 :0put
.
:0put =range(1,100)
실행 취소의 순수 Vim :put =range(1,100)
(실제로 빈 줄이 남게 함) 외에도 OS에 따라 해당 명령 중 하나를 사용할 수 있습니다. 예를 들어, 유닉스 / 리눅스 박스에서 :
%!seq 1 100
위의 내용은 전체 (빈) 버퍼를 seq
로 전달하여 입력을 무시하고 1에서 100까지의 숫자 만 출력합니다. Vim은 전체 버퍼를 seq
의 출력으로 바꿉니다 .
원하는 것을 얻는 명령 줄 방법에 이미 익숙 할 때 유용합니다.
기록을 위해, 그리고 가장 짧은 방법은 아니지만 (@Undo의 멋진 솔루션 참조) 키 입력 순서도 그렇게합니다.
i1EscqaYpCtrl+aq98@a
내가 당신을 위해 그것을 분해하자 :
i1<Esc>
-숫자 1을 입력 한 다음 명령 모드로 돌아갑니다.qa
-레지스터 "a"에서 매크로 기록 시작Y
-현재 줄을 복사p
-현재 줄 붙여 넣기 (커서도 붙여 넣은 줄로 이동)<Ctrl>a
-줄의 다음 숫자를 증가시켜 2로 만듭니다.q
-매크로 기록 중지 ( "a"등록)98@a
-레지스터 "a"에서 매크로를 98 회 재생새로운 접근법이 필요한 다른 접근법이 있습니다 (7.4.800과 같은 것)
이것은 빈 버퍼와 레지스터 a의 '1'을 가정합니다. 먼저 버퍼에 100 1을 입력하십시오 "a100P.
그런 다음 라인 2에서 100까지 시각적으로 선택하십시오 :2EnterVG.
이제 gCtrl+를 누릅니다 A.
에서 도움말을 읽으십시오 :h v_g_CTRL-A
:h g_CTRL-A
나는이 질문이 실제로 오래되었다는 것을 알고 있지만 당신이 그것을 할 수있는 다른 방법이 있습니다. 이 시도:
99o<esc>:%s/^/\=line('.')<cr>
99o<esc>
100 개의 빈 줄이 열립니다. 그런 다음 대체 명령을 실행합니다.
:% " On every line
s/ " substitute
^/ " the start of the line. (This will always match no matter what)
\= " Evaluate:
line('.') " The current line.
<C-r>=range(1,100)
.