덮어 쓰지 않고 vim 레지스터에 줄을 추가하는 방법
레지스터에서 한 줄을 잡아 당기고 싶습니다. "{register}y
하지만 이전에 레지스터에 있던 것을 덮어 쓰지 않습니다. 나는 종종 레지스터에서 연속적이지 않은 줄을 복사해야하고 때로는 레지스터를 스택처럼 사용하고 싶습니다.
예:
line1
line2
line3
나는 복사 할 line1
그 위에 커서를 넣고 입력하여, "ay
에 다음가는 line3
및 수행 "ay
. 그럼, 할 때 "ap
, BOTH line1
및 line3
붙여 넣을 수 있습니다.
플러그인없이 가능합니까? 플러그인?
명명 된 레지스터에 추가하려면 해당 대문자를 사용하십시오. 즉 귀하의 예에서 :
"ayy "아 "ap
MarkB의 응답을 확장하기 위해 마커를 사용하여 yank에 대한 텍스트 블록을 선택할 수도 있다는 것을 알고 계셨습니까?
잡아 당기려는 블록의 첫 번째 줄로 이동하여 문자를 마커로 선택한 후 mark 명령을 입력합니다.
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로 표시 한 문자 바로 앞 의 문자 까지 삭제하므로 유용합니다 .
참고 URL : https://stackoverflow.com/questions/380379/how-to-add-lines-to-a-vim-register-without-overwriting-it
'programing' 카테고리의 다른 글
React : 소품 변경시 자식 구성 요소가 업데이트되지 않는 이유 (0) | 2020.10.10 |
---|---|
응용 프로그램의 경로 가져 오기 (0) | 2020.10.10 |
어셈블리를로드하고 클래스를 찾고 Run () 메서드를 호출하는 올바른 방법 (0) | 2020.10.10 |
짧은 해시를 생성하는 해시 함수? (0) | 2020.10.10 |
System.getenv ()와 System.getProperty ()의 차이점 (0) | 2020.10.09 |