vim 명령줄에서 명명된 레지스터를 삽입하는 방법

vim 명령줄에서 명명된 레지스터를 삽입하는 방법

vim명령줄 모드를 사용하여 특정 레지스터의 값을 삽입하는 데 문제가 있습니다.

normal모드에서는 레지스터 값을 현재 라인 아래에 배치하는 시퀀스를 입력할 수 있습니다 ."*p"*

"*put명령줄에 명령을 입력하려고 하면 아무 일도 일어나지 않습니다. 반면에 방금 명령을 실행하면 put이름이 지정되지 않은 레지스터의 값이 배치됩니다.

그렇다면 문제는 명령줄 모드를 사용하여 명명된 레지스터의 내용을 어떻게 입력할 수 있느냐는 것입니다.

편집 #1

몇 가지 추가 테스트를 거친 후 해결 방법을 찾았습니다.

qz1"cpq먼저 시퀀스에서 붙여넣기 레지스터를 캡처할 위치를 사용합니다.

qz  -> start recording into register z
1   -> goto line 1
"cp -> put content of register c
q   -> end recording

매크로를 :@z실행하여 필요한 단계를 수행할 수 있습니다. 다음과 함께 사용하는 경우 bufdo:

:bufdo execute "normal @z"

이 레지스터는 열려 있는 모든 버퍼에 새 라인으로 추가될 수 있습니다.

이것이 작업 방법이기는 하지만 매크로 없이 동일한 작업을 수행하는 더 효율적인 방법이 있다고 생각합니다.

답변1

이를 수행하려면 다음 명령줄 버전을 사용할 수 있습니다 put.

:put z

전체 구문은 을 :[line]pu[t] [x]참조하십시오 :help :put.

참고 사항: Vim 괴짜의 굴은 다음과 같습니다.이 방법.

관련 정보