neovim 0.4.3-3의 일반 모드에서 이 명령은 다음과 같습니다.
:put=range(1,4)
1부터 4까지 번호가 매겨진 목록을 배치합니다.
하지만 다음과 같이 빈 행에 숫자를 입력하고 싶을 때는 다음과 같습니다.
:g/^$/norm :put=range(1,14)
예상대로 작동하지 않습니다. 빈 줄만 강조 표시되지만 put이 작동하지 않습니다. 이유는 무엇입니까?
답변1
이 :normal
명령은 전체 명령만 실행하며 :put
Ex 명령에는 실제로 실행하기 위한 "Enter"가 없습니다.
~에서:help :normal
:
{commands}
완전한 명령이어야 합니다. 명령이 완료되지 않으면 or를{commands}
입력하는 것과 마찬가지로 마지막 명령이 중단됩니다<Esc>
.<C-C>
:
주문도 완료되어야 합니다.
명령 끝에 추가 "Enter" 문자를 추가하면 이 문제를 해결할 수 있습니다. 이 문자는 다음을 사용하여 입력할 수 있습니다.
Ctrl+ V,Enter
^M
Vim에서는 다음과 같이 나타납니다 .
:g/^$/norm :put=range(1,14)^M
(명령에 "Enter" 텍스트를 입력하지 않는 방법이 있습니다. 예를 들어 이 :execute
명령은 이러한 목적으로 자주 사용됩니다.)
하지만 이 경우 더 쉬운 해결책이 있습니다. 바로 포기 :normal
하고 :g
실행하는 것입니다 :put
!
:g/^$/put=range(1,14)
이 :g
명령은 일치하는 모든 줄에 대해 Ex 명령을 실행하며 :put
Ex 명령이므로 여기서 중개자를 잘라낼 수 있습니다.
이 명령은 버퍼의 각 빈 줄에 14개의 새로운 번호가 매겨진 줄을 추가합니다. 이것이 정말로 당신의 의도인지 확실하지 않습니다.