- 이 기능의 필요성
물론 마우스로 선택한 후 복사나 붙여넣기를 해도 되지만…
이렇게 하면 vim이 아니라 시스템에서 처리하는 것이므로, 줄번호 까지 붙여 넣어집니다.
또, 마우스로 선택하는 것 보다는 키보드가 편할 뿐 더러, 마우스로 선택하면 자동으로 스크롤이 안됩니다.
- 사전지식
v : 컬럼단위 비주얼모드
Shift+v : 줄단위 비주얼모드
Ctrl+v : 블럭 비주얼모드
v 키를 다시 누르면 정상모드로 복귀합니다.
비주얼모드에서 화살표로 이동한 후 y로 vim내의 클립보드로 복사할 수 있습니다.
블럭단위가 아닐경우 Y키를 누르면 줄단위로 vim내의 클립보드로 복사 됩니다.
그리고 난 후 p키로 뒤에, P키로 앞에 붙여넣을 수 있습니다.
vmap, vnoremap 명령은 키매핑을 비주얼모드에서만 동작하게 합니다.
편집모드에서 Ctrl+v키는 특수문자 입력키이므로, v[nore]map으로 매핑하면
편집모드에서는 특수문자 입력키로 사용됩니다.
- 준비작업
시스템 클립보드와 연동하기 위해선 클립보드에서 얻기및 붙여넣기를 할 수 있는 프로그램이 필요합니다.
[code:2wurvkxa]sudo apt-get install xclip[/code:2wurvkxa]
4. vim에 기능 추가
#~/.vimrc의 내용
[code:2wurvkxa]
"붙여넣기시 자동들여쓰기를 하지 않게함
set paste
"붙여넣기 모드 선택키
set pastetoggle <Ins>
"yank후에 마크위치로 이동하기에, 다시 커서를 이동시킴
vnoremap y y> "라인단위 yank후에 마크위치로 이동하기에, 다시 커서를 이동시킴 vnoremap Y Y
>
"붙여넣기 후 붙여넣기된 끝으로 커서이동
noremap p p`]
"비주얼블럭의 내용을 클립보드로 붙여넣기
vmap <C-c> y:call system("xclip -i -selection clipboard", getreg("""))<CR>
"Control+v키가 비주얼 블럭모드 키라서 Control+w로 대체 (에디트플러스의 Alt+w에서 착상)
noremap <C-w> <C-v>
"클립보드의 내용을 vim으로 붙여넣기
map <C-v> :call setreg(""",system("xclip -o -selection clipboard"))<CR>p
[/code:2wurvkxa]