Vim의 register를 system clipboard, mouse clipboard 랑 연동하기

[size=150:2pe4unik][b:2pe4unik]1. 필요성 :
[/b:2pe4unik]
[/size:2pe4unik]
터미널로 vim에서 작업하다가
일부 text 내용을 복사해서 gedit 등에 붙여넣기할 때,

  1. 마우스로 긁어서 mouse clipboard 에 복사하거나,
  2. 아니면 긁은 부분을 Shift+Control+C (==<S-C-c>로 약칭)해서 System clipboard 에 복사후
    gedit에 Control+V(<C-v>) 하는 방법을 주로 쓴다.

근데 이거보다는 걍 vim에서 20 라인 yanking 후에 그걸 그대로 gedit에 <C-V> 하는 게 편하다.
특히 vim에서 비쥬얼 블럭 잡은 부분(v, column 블럭은 <C-v>를 쓴다.)을 gedit에 붙여넣기 할때는 더욱 편하다.

이때 system clipboard 는 Control+V할 때 화면에 출력되는 부분이고,
mouse clipboard 는 마우스 중간버튼 누를 때 화면에 출력되는 부분이다.
이들은 vim내에서 특별한 "register"라고 불리며, 각각 +와 * 로 표기된다.
(아래를 보면 사용 방법을 알수 있다.)

즉 vim의 텍스트 -> vim의 마우스/시스템 레지스터 -> X11의 마우스/시스템 클립보드 -> gedit등에서 붙여넣기
그리고 그 역순이 가능하다는 말임.
익숙해지면 매우 편함.

**) 참고로 말하면 , xclip 이라는 프로그램을 이용해서 하는 방법도 있는 거 같은데,
(viewtopic.php?p=89664 )
제가 써놓은 방법은 그런 거 없이 통상의 Vim 설치후 아무것도 안 깔고도 가능한 방법임.

[size=150:2pe4unik][b:2pe4unik]2. 방법 :
[/b:2pe4unik]
[/size:2pe4unik]1. vim register와 system clipboard(+), mouse clipboard(*) 를 연동 시키기 :

참고 사이트 : http://stackoverflow.com/questions/7747 … 93#7747893

[b:2pe4unik]요점 :
vim내에서 "*y, "+y (대문자 Y도 동일)로 각각 마우스/시스템 리지스터로 yanking(=복사).
vim에서 마우스/시스템 클립보드의 내용을 커서있는 자리에 붙여넣기는 "*p, "+p (대문자 P는 커서 위쪽으로 붙여넣기)
[/b:2pe4unik]
진짜 순서 :

  1. vim내에서 텍스트를 yank 시킴과 동시에 mouse clipboard에 복사하기 ( vim register -> mouse clipboard -> gedit 붙여넣기)

a.)) vim 내에서 "*3y 라고 하면 3줄이 마우스 클립보드로 복사됨. -> vim 밖에서(gedit등) 그 내용을 마우스 중간버튼 누르면 붙여넣기됨.

b.)) 또는 vim 내에서 비쥬얼 블럭 잡아서(C-V, V로 잡기), "*y 라고 하면 그 비주얼 블럭이 마우스 클립보드로 복사됨. -> 붙여넣기는 위와 동일.

  1. vim내에서 텍스트를 yank 시킴과 동시에 system clipboard로 복사하기.
    마우스 클립보드에 복사와 같고, 단지 "*3y, "*y 대신에 "+3y, "+y 라고 하면 system clipboard로 복사됨. -> gedit 등엣 붙여넣기 할 때는 Ctrl-V로 붙여넣기.

  2. gedit등에서 마우스 클립보드에 복사한걸 vim내에서 붙여넣기.

a.)) vim에서 "*P(커서 위쪽에 붙여넣기), "*p(커서 아래쪽에) 하면 됨.

  1. gedit등에서 System 클립보드에 복사한걸 vim에서 붙여넣기.

a.)) vim에서 "+P(커서 위쪽에 붙여넣기), "+p(커서 아래쪽에) 하면 됨.

윗글에서 vim에서 system/mouse clipboard로 yanking 할때는
한줄, 세줄 yanking 시에
"*y, "*3y 가 아니라

"*yy, "*3yy

입니다.

틀렸기에 바로잡습니다.

… 물론 visual block을 잡은 후는 그냥 "*y 라고 하면 됩니다.