vim 잘라 내기 및 붙여 넣기 이력


60

vim에서 '잘라 내기'할 때, 내가 잘라낸 모든 최근 기록을 유지하는 기록부가 있다고 생각합니다. 해당 레지스터에 어떻게 액세스합니까?

예를 들어,이 단어들 각각을 연속적으로 자른다 고 가정 해 봅시다.

  • '여보세요'
  • '세계'
  • '과'
  • '정력'

실제로 이러한 편집 내용을 특정 레지스터에 저장하지 않고 'd'를 4 번 연속해서 사용하고 있습니다.

답변:


100

그만큼

: 도움말 등록

명령은 10 개의 번호가 매겨진 레지스터가 있음을 나타냅니다 ( "0to "9).

회원 가입은 "0가장 최근의 일이다 ; register "1에는 가장 최근에 삭제 된 텍스트가 있고 "2, 이전 삭제를 등록 하고 , 그 이전에 삭제 한 등 "3이 있습니다.

당신이 차례로 각 라인을 삭제하면, 레지스터 "1, "2, "3"4각각, "세계"및 "을 안녕하세요", "빔을"포함 "그리고"것입니다.

:reg(또는 :registers) 명령 을 사용하여이를 확인할 수 있습니다 .

:reg
""   Vim^J
"1   Vim^J
"2   And^J
"3   World^J
"4   Hello^J

따라서 한 번에 네 줄을 삭제 한 후에는 두 번째 줄 ( "World")을

"3p

최근 세 번째 삭제이기 때문입니다.


이것은 완벽 해; 그러나 가장 최근의 '양말'텍스트를 원하는 것은 무엇입니까?
Alexey

p : "0p와 동일"
njd

1
또한 읽을 때 특수 레지스터, 특히 "*"및 "+"에주의하십시오 :help registers. 매우 유용합니다.
다니엘 앤더슨

3
신, 당신은 비머로 매일 새로운 것을 배웁니다. 훌륭합니다. 감사합니다, @njd.
ELLIOTTCABLE

3
이 답변은 중요한 세부 사항을 생략합니다. 한 줄 이상의 삭제 만 기록에이 방법으로 저장됩니다. 질문에 OP가 설명 된 방식으로 단어를 삭제하면 ( d대신 4 번 사용 dd) 마지막으로 삭제 된 단어 를 제외한 모든 단어 가 손실됩니다.
Alexander Rechsteiner

8

njd의 답변 외에도 YankRing 플러그인 으로 단순화 할 수 있습니다 . 이전 yank를보다 쉽게 ​​탐색 할 수있을뿐만 아니라, 'stack'에서 이전 yanks를 팝할 수 있도록 일부 키를 구성 할 수 있습니다. 이를 통해 다음을 수행 할 수 있습니다.

yy    " Copy first line
yy    " Copy second line
yy    " Copy third line
yy    " Copy fourth line
" Assumes you've mapped ,p to be the pop command: choose your preferred key or key-combination
,p    " Paste fourth line and pop it off the Yank Ring
,p    " Paste third line and pop it off the Yank Ring
,p    " Paste second line and pop it off the Yank Ring
,p    " Paste first line and pop it off the Yank Ring

4
,p이전의 pop 크를 터뜨 리도록 매핑하는 방법을 추가 할 수 있습니까?
앤드류 우드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.