vim에서 xclip 사용하기

clipboard와 yank를 구분해서 사용하는 이유

시작에 앞서 필자의 개똥철학 하나를 소개하려고 한다.

필자는 ctrl-cctrl-v를 이용하는 윈도우 상 clipboard와, yp를 이용하는 vim의 yank를 구분해서 사용한다. vimrc에서 :set clipboard= 기능을 이용하면 yand와 clipboard를 공유해서 사용할 수 있다. 하지만 필자는 이 기능을 꺼놓고, 굳이 분리해서 사용한다.

굳이 장점을 나열해 보자면 다음과 같다.

  1. 분리해서 사용하는 것이 기본값이라서 익숙해져버렸다.
  2. 결국 버퍼가 두 개 존재하는 것이 되어 편리하다.
  3. clipboard 옵션을 켜는 경우, vim 초기실행 시간이 느려지는 현상이 있다.
  4. xclip을 활용하면, 키보드 만으로 xlipboard에 원하는 내용을 채울 수 있다.

이 중에서 4번 내용을 자세하게 다뤄보려고 한다.

xclip 설치 및 사용법

xclip은 터미널에서 window의 클립보드를 효율적으로 제어 할 수 있게 만들어 주는 툴이다. 다음 명령을 이용해서 설치하자.

1
sudo apt-get install xclip

이후에는 visual mode에서 ctrl-c 를 이용해서 복사할 수 있도록 설정하자.

1
vmap <C-c> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>

위와 같이 설정하면, visual mode에서 블록 지정 후 ctrl-c를 누르면 클립보드로 복사된다. 단 xming이나 xmanager등의 툴을 통해서 x11 DISPLAY가 forwarding 되고 있어야 한다.

또 다른 흥미로운 설정은 경로 복사이다. 필자는 <leader>ya 키에 맵핑했는데, 이 키를 누르면 바로 파일 경로가 클립보드로 복사된다. <leader>yf 는 파일명 만 잘라서 복사해준다.

1
2
map <leader>ya :call system("xclip -i -selection clipboard", getreg("%"))<CR>
map <leader>yf :call system("xclip -i -selection clipboard", expand("%:t"))<CR>