Vim (Vi IMproved) là một trong những trình soạn thảo văn bản yêu thích nhất của lập trình viên. Nó có đặc thù riêng trong thực hiện các thao tác khác nhau bằng lệnh tắt.
Ví dụ, để copy văn bản được highlight dùng lệnh 'y' và 'x' để cut. Nhưng mặc định vim (không phải gVim) nội dung clipboard không thể truy cập sau khi đóng vim.
Vim dùng thanh ghi '+' để tham chiếu clipboard hệ thống. Chạy 'vim --version' và nếu không thấy "+xterm_clipboard" mà thấy "xterm_clipboard", thì nội dung clipboard nội bộ không dùng được bên ngoài vim.
Cài đặt gvim và parcellite
Để truy cập nội dung clipboard vim, cần cài gói gvim. gVim là chế độ GUI của vim editor với clipboard bật mặc định.
# yum install -y gvim
Tiếp theo, bật kho RPMForge để cài gói parcellite. Parcellite là trình quản lý clipboard nhẹ, nhỏ và miễn phí cho Linux.
# yum install -y parcellite
Sau khi cài, chạy lệnh sau. Tham số '&' dùng để chạy parcellite nền.
# parcellite &
Kiểm tra tùy chọn trong gvim:
# gvim --version
Đảm bảo tùy chọn "+xterm_clipboard" hiển thị trong đầu ra như dưới:
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 5 2012 10:12:08) Included patches: 1-411 Modified by <admin@wsxdn.com> Compiled by <admin@wsxdn.com> 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
Mở file .bashrc của người dùng.
# vim ~/.bashrc
Thêm alias và lưu file (nhấn 'i' để chèn dòng, nhấn ESC, rồi chạy :wq để lưu thoát).
# .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
Alias này là built-in dùng để chuyển hướng lệnh sang lệnh khác. Do đó mỗi khi lệnh vim được gọi, alias tương ứng chạy gvim với clipboard bật mặc định.
Bây giờ chỉnh file '.vimrc' tương tự (Nếu chưa có file .vimrc, tạo file đó rồi quay lại).
# vim ~/.vimrc
Thêm dòng sau và lưu file.
autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")
Mở file bất kỳ trong vim, highlight đoạn văn bản (dùng lệnh 'v') và nhấn "+y. Thử paste bên ngoài vim (sau khi đóng hoặc không đóng vim) và xong.
Tạo file .vimrc
Chạy lệnh sau để tạo file .vimrc (bỏ qua nếu đã có).
# cd [Đưa bạn về thư mục home] # vim .vimrc
Trong vim chạy sau khi nhấn ESC (Trong vim mọi lệnh chạy sau ESC đưa bạn vào chế độ lệnh).
:r $VIMRUNTIME/vimrc_example.vim :w