한 줄에 하나씩 순차적 번호 목록을 생성하려면 어떻게해야합니까?


38

빈 슬레이트에서 시작하여 포함 된 문서를 얻는 방법

1
2
3
4
5
6
7
8
9
10
…
100

분명히, 나는이 숫자를 여백에 표시하고 싶지 않습니다. 문서 자체에 삽입하고 싶습니다.

답변:


51

사용 :putrange():

:put =range(1,100)

상단의 빈 줄을 피하려면 ( kudos to romainl ) 다음을 사용하십시오 :0put.

:0put =range(1,100)

1
또는을 사용하여 삽입 모드에서 <C-r>=range(1,100).
Hotschke

18

실행 취소의 순수 Vim :put =range(1,100)(실제로 빈 줄이 남게 함) 외에도 OS에 따라 해당 명령 중 하나를 사용할 수 있습니다. 예를 들어, 유닉스 / 리눅스 박스에서 :

%!seq 1 100

위의 내용은 전체 (빈) 버퍼를 seq로 전달하여 입력을 무시하고 1에서 100까지의 숫자 만 출력합니다. Vim은 전체 버퍼를 seq의 출력으로 바꿉니다 .

원하는 것을 얻는 명령 줄 방법에 이미 익숙 할 때 유용합니다.


이것은 내가 질문을 받아 들인 것보다 낫다고 생각하는 이유를 질문한다. 예, 초승달 모양의 렌치를 사용하여 수프를 저어 줄 수있는 것처럼 vim이 작업을 수행하도록 할 수 있습니다. Vim은 임의의 텍스트 생성기가 아닌 텍스트 편집기입니다. 훨씬 더 확실한 도구가 있습니다.
msw

16

기록을 위해, 그리고 가장 짧은 방법은 아니지만 (@Undo의 멋진 솔루션 참조) 키 입력 순서도 그렇게합니다.

i1EscqaYpCtrl+aq98@a

내가 당신을 위해 그것을 분해하자 :

  1. i1<Esc> -숫자 1을 입력 한 다음 명령 모드로 돌아갑니다.
  2. qa -레지스터 "a"에서 매크로 기록 시작
  3. Y -현재 줄을 복사
  4. p -현재 줄 붙여 넣기 (커서도 붙여 넣은 줄로 이동)
  5. <Ctrl>a -줄의 다음 숫자를 증가시켜 2로 만듭니다.
  6. q -매크로 기록 중지 ( "a"등록)
  7. 98@a -레지스터 "a"에서 매크로를 98 회 재생

4

새로운 접근법이 필요한 다른 접근법이 있습니다 (7.4.800과 같은 것)

이것은 빈 버퍼와 레지스터 a의 '1'을 가정합니다. 먼저 버퍼에 100 1을 입력하십시오 "a100P.

그런 다음 라인 2에서 100까지 시각적으로 선택하십시오 :2EnterVG.

이제 gCtrl+를 누릅니다 A.

에서 도움말을 읽으십시오 :h v_g_CTRL-A


답에 let @ a = "1"을 추가해야합니다. 초보자는 레지스터 1에 값 1을 저장하는 방법을 찾기 위해 멈출 수 있습니다.
SibiCoder

다른 유사한 솔루션에서 gCtrl + A 콤보를 보았습니다. 그러나 나는 그것이하는 일 / 작동 방식에 대한 설명을 찾을 수 없었습니까? 설명서에서 g의 기능을 설명하는 참조가 있습니까? 감사! 설명을 찾으면 게시하겠습니다.
codingFoo

1
문서는:h g_CTRL-A
Christian Brabandt

v_g_CTRL-A 섹션에 대한 링크가 누락되었습니다.
codingFoo

2

나는이 질문이 실제로 오래되었다는 것을 알고 있지만 당신이 그것을 할 수있는 다른 방법이 있습니다. 이 시도:

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.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.