전체 버퍼를 대체하는 가장 효율적인 방법은 무엇입니까?


10

현재 전체 버퍼를 다른 텍스트 (예 : 클립 보드)로 바꾸는 두 가지 비슷한 방법이 있습니다.

방법 # 1 :

  1. 모든 줄을 삭제하십시오 :%d.

  2. 텍스트 붙여 넣기 : "+P(또는 이와 유사한 :) :put+.

방법 # 2 :

  1. 모든 라인을 시각적으로 선택하십시오 : ggVG.

  2. 텍스트 붙여 넣기 : "+P.

그러나 나는 그것을 할 수있는 하나의 명령 실행 방법을 찾지 못하는 것 같습니다. 내가 찾은 가장 가까운 것은 :change명령입니다. 그러나 레지스터와 잘 작동하지 않는 것 같습니다. 물론 기능을 만들거나 키를 매핑 할 수 있습니다. 그러나 이러한 모든 사용자 정의를 수행하기 전에 다음을 확인하고 싶습니다.

여러 줄을 다른 텍스트로 바꾸는 내장 명령이 있습니까? 예를 들어, :%replace+전체 버퍼를 클립 보드의 텍스트로 바꿀 수 있습니까?


2
나는 머리 꼭대기에서 아무것도 알지 못하지만, 이것을 많이한다면 매핑 / 명령을 작성하지 않는 이유는 무엇입니까?
Matt Boehm

5
흠, 1,$s/\_./\=@+해결책이 아닙니다 : P :%d|put+는 더 가깝지만 꽤 있습니다.
Runium

1
점 뒤에 별표를 잊어 버렸습니다 .... 1,$s/\_.*/\=@+여기서 줄 바꿈을 포함한\_. 모든 문자와 일치합니다 .
Runium

2
버퍼를 재사용 해야 합니까 , 아니면 새 버퍼를 시작하는 것이 허용됩니까?
200_success

3
Sukminder의 :%d|put+계산서 가 적합 하다고 생각 합니다. 짧고 기억에 남습니다. 다른 명령은 너무 간결해서 기억하고 정확하게 입력 할 수 없습니다.
Lie Ryan

답변:


2

당신은 할 수있는 ggvG<CTRL-G>시각적으로 전체 버퍼를 선택하고 입력합니다 Select-mode. 버퍼를 입력하려는 텍스트로 바꾸는 가장 쉬운 방법입니다. 문제를 해결 하는 Select-mode매핑 을 만들 수도 있습니다 :smap.


0

전체 버퍼를 클립 보드로 바꾸는 한 가지 방법은 다음과 같은 외부 명령을 사용하는 것입니다.

:%!pbpaste
:%!echo my_text

참조 : 맥 OS X 클립 보드 공유

또는 대체를 사용하여 :

:%s/\_.*/\=@+/
:%s/\_.*/my text/

또는 :%d|put+주석에서 이미 제안한대로 사용 하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.