Vim(Vi IMproved)는 프로그래머들 사이에서 가장 사랑받는 텍스트 편집기 중 하나입니다. 짧은 단축 명령만으로 다양한 작업을 빠르게 수행할 수 있다는 점이 큰 장점입니다.
예를 들어, 하이라이트된 텍스트를 복사할 때는 'y' 명령을, 잘라내기할 때는 'x' 명령을 사용합니다. 그런데 기본 설정의 vim(gVim이 아닌 경우)은 vim 인스턴스를 종료하면 클립보드 내용에 더 이상 접근할 수 없다는 문제가 있습니다.
Vim은 시스템 클립보드를 참조하기 위해 '+' 레지스터를 사용합니다. 터미널에서 'vim --version' 명령을 실행했을 때 출력 결과에 "+xterm_clipboard"가 보이지 않고 "-xterm_clipboard"로 표시된다면, vim 내부 클립보드 내용을 vim 외부에서 사용할 수 없습니다.
gvim과 parcellite 설치하기
vim의 클립보드 내용에 접근하려면 먼저 gvim 패키지를 설치해야 합니다. gVim은 vim 편집기의 GUI 모드로, 클립보드 옵션이 기본적으로 활성화되어 있습니다.
# yum install -y gvim
다음으로 parcellite 패키지를 설치하기 위해 RPMForge 저장소를 활성화합니다. Parcellite는 리눅스용 경량 클립보드 관리자로, 가볍고 무료로 사용할 수 있습니다.
# yum install -y parcellite
설치가 완료되면 다음 명령을 실행합니다. 인자 '&'는 parcellite를 백그라운드 프로세스로 실행하기 위해 사용됩니다.
# parcellite &
이제 gvim에서 해당 옵션이 활성화되어 있는지 확인합니다.
# gvim --version
출력 결과에 아래와 같이 "+xterm_clipboard" 옵션이 표시되어 있는지 확인하세요.
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 5 2012 10:12:08) Included patches: 1-411 Huge version with GTK2 GUI. Features included (+) or not (-): +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript +printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save
.bashrc 파일에 별칭(alias) 등록하기
사용자의 .bashrc 파일을 엽니다.
# vim ~/.bashrc
아래와 같이 별칭(alias)을 추가한 후 파일을 저장합니다('i' 키를 눌러 입력 모드로 전환하고, 내용을 추가한 뒤 ESC 키를 누른 후 :wq를 입력하여 저장하고 종료합니다).
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vim='gvim -v'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi이 별칭은 특정 명령을 다른 명령으로 우회시키는 기능을 합니다. 즉, 앞으로 vim 명령을 입력할 때마다 자동으로 gvim이 실행되며, 클립보드 옵션이 기본적으로 활성화된 상태로 동작하게 됩니다.
.vimrc 파일 설정하기
같은 방식으로 '.vimrc' 파일도 수정합니다(만약 .vimrc 파일이 없다면, 아래의 '.vimrc 파일 생성하기' 섹션을 참고해 파일을 먼저 만든 후 돌아오세요).
# vim ~/.vimrc
파일 맨 아래에 다음 줄을 추가하고 저장합니다.
autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")이제 vim으로 아무 파일이나 열어 텍스트 일부를 선택('v' 명령 사용)한 뒤 "+y를 눌러보세요. vim을 종료한 후 또는 종료하지 않은 상태에서 vim 외부의 어느 곳이든 붙여넣기가 정상적으로 작동하는 것을 확인할 수 있습니다.
.vimrc 파일 생성하기
.vimrc 파일이 없다면 다음 명령으로 생성할 수 있습니다(이미 파일이 있다면 이 단계는 건너뛰어도 됩니다).
# cd [홈 디렉터리로 이동] # vim .vimrc
vim에서 ESC 키를 누른 후(vim의 모든 명령은 ESC 키를 눌러 명령 모드로 전환한 상태에서 실행합니다) 다음을 입력합니다.
:r $VIMRUNTIME/vimrc_example.vim :w