레지스터에서 한 줄을 잡아 당기고 싶습니다. "{register}y
하지만 이전에 레지스터에 있던 것을 덮어 쓰지 않습니다. 나는 종종 레지스터에서 연속적이지 않은 줄을 복사해야하고, 때때로 레지스터를 스택처럼 사용하고 싶습니다.
예:
line1
line2
line3
나는 복사 할 line1
그 위에 커서를 넣고 입력하여, "ay
에 다음가는 line3
및 수행 "ay
. 그럼, 할 때 "ap
, BOTH line1
및 line3
붙여 넣을 수 있습니다.
플러그인없이 가능합니까? 플러그인?
답변
명명 된 레지스터에 추가하려면 해당 대문자를 사용하십시오. 즉 귀하의 예에서 :
"ayy "예 "ap
답변
MarkB의 응답을 확장하기 위해 마커를 사용하여 yank에 대한 텍스트 블록을 선택할 수도 있다는 것을 알고 계셨습니까?
잡아 당길 블록의 첫 번째 줄로 이동하여 문자를 마커로 선택한 후 표시 명령을 입력합니다.
ma (entered in command mode, i.e. no colon)
그런 다음 잡아 당길 블록의 맨 아래로 이동하여 다음 명령을 입력하십시오.
:'a,.ya A
이 명령은 내 마커가 포함 된 줄에서 현재 줄까지의 텍스트 블록을 가져 와서 버퍼 a로 잡아 당기는 것을 의미합니다. 언급 한 MarkB와 동일한 규칙이 적용됩니다. 버퍼를 덮어 쓰려면 소문자 버퍼 이름을 사용하십시오. 버퍼에 추가하려면 대문자 버퍼 이름을 사용하십시오. 따라서이 경우 이것은 버퍼 a의 내용에 추가됩니다.
NB 마커에 사용 된 ‘a’는 레지스터를 선택하는 데 사용되는 ‘a’와 관련이 없습니다. (AFAIK이지만 YMMV)
BTW ‘a (아포스트로피 a)는 마커 a를 포함하는 줄을 나타냅니다. `a (역 따옴표 a)는 ma를 입력했을 때 커서 아래에있는 문자를 나타냅니다.
`ad`b (also entered in command mode)
마커 a로 표시된 문자 사이의 텍스트 를 마커 b로 표시 한 문자 바로 앞 의 문자 까지 삭제하므로 유용합니다 .