การเข้าถึงเนื้อหาของคลิปบอร์ดในหลายอินสแตนซ์ของ Vim จาก Terminal
Vim (Vi IMproved) เป็นหนึ่งในโปรแกรมแก้ไขข้อความที่โปรแกรมเมอร์ชื่นชอบมากที่สุด โดยมีความเชี่ยวชาญพิเศษในการดำเนินการต่างๆ ด้วยคำสั่งสั้นๆ
ตัวอย่างเช่น หากต้องการคัดลอกข้อความที่ไฮไลต์ เราใช้คำสั่ง 'y' และ 'x' เพื่อตัดข้อความเดียวกัน แต่โดยค่าเริ่มต้น เนื้อหาของคลิปบอร์ด vim (และไม่ใช่ gVim) จะไม่สามารถเข้าถึงเนื้อหาได้หลังจากปิดอินสแตนซ์ vim
Vim ใช้การลงทะเบียน '+' เพื่ออ้างถึงคลิปบอร์ดของระบบ คุณสามารถเรียกใช้ 'vim –version' และหากคุณไม่เห็นบางอย่างเช่น “+xterm_clipboard” และแทนที่จะเป็น “xterm_clipboard“ แสดงว่าเนื้อหาของคลิปบอร์ดภายใน จะไม่สามารถใช้ได้ภายนอก vim
ติดตั้ง gvim และ parcellite
ในการเข้าถึงเนื้อหาคลิปบอร์ด vim คุณต้องติดตั้งแพ็คเกจ gvim gVim เป็นโหมด GUI สำหรับโปรแกรมแก้ไข vim โดยที่ตัวเลือกคลิปบอร์ดจะเปิดใช้งานตามค่าเริ่มต้น
yum install -y gvim
จากนั้น เปิดใช้งาน RPMForge Repository เพื่อติดตั้งแพ็คเกจ parcellite Parcellite เป็นตัวจัดการคลิปบอร์ดน้ำหนักเบา ขนาดเล็ก และฟรีสำหรับ Linux
yum install -y 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
Modified by <[email >
Compiled by <[email >
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 ของผู้ใช้
vim ~/.bashrc
และเพิ่มนามแฝงและบันทึกไฟล์ (กด '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 ให้สร้างไฟล์ดังกล่าวขึ้นมาหนึ่งไฟล์แล้วกลับมาที่นี่ .
vim ~/.vimrc
ผนวกบรรทัดต่อไปนี้และบันทึกไฟล์
autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")
ตอนนี้เปิดไฟล์ใด ๆ ในกลุ่มและไฮไลต์ส่วนของข้อความ (โดยใช้คำสั่ง 'v') แล้วกด "+y ลองวางที่ใดก็ได้ภายนอกกลุ่ม (หลังจากปิดหรือไม่มีการปิดกลุ่ม) เท่านี้ก็เสร็จแล้ว
กำลังสร้างไฟล์ .vimrc
เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์ .vimrc (ข้ามส่วนนี้หากคุณมีอยู่แล้ว)
cd [This will put you in home directory]
vim .vimrc
ในกลุ่มให้รันสิ่งต่อไปนี้หลังจากกดปุ่ม ESC (ในกลุ่มทุกคำสั่งจะถูกรันหลังจากกดปุ่ม ESC ซึ่งจะทำให้คุณอยู่ในโหมดคำสั่ง)
:r $VIMRUNTIME/vimrc_example.vim
:w