天天看點

跨越終端中多個vim執行個體通路剪切闆内容

vim (vi improved)是一款在程式員之間非常受歡迎的文本編輯器。它在執行不同的快捷指令操作上有它自己的特長。

跨越終端中多個vim執行個體通路剪切闆内容

從vim通路剪切闆

比如,要拷貝高亮的文本,我們使用‘y’指令,并用‘x’來剪切。但是,vim(不是gvim)剪切闆的内容預設情況下是不能被其他的vim執行個體通路的。

vim版本資訊中使用‘+’表示啟用了系統剪切闆。你可以運作‘vim ­­–version’,如果你看不到像“+xterm_clipboard”而是顯示“­xterm_clipboard“,那麼會使用内部剪切闆,其将不能被其它的vim執行個體通路。

<a target="_blank"></a>

為了通路vim剪切闆的内容,你需要安裝gvim包。gvim是vim編輯器的gui模式,它的剪切闆選項預設啟用。

# yum install -y gvim

# yum install -y parcellite

一旦安裝後,運作下面的指令。這裡的參數‘&amp;’是使parcellite以背景程序運作。

# parcellite &amp;

檢查選項已經在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 &lt;[email protected]&gt;

compiled by &lt;[email protected]&gt;

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

這個alias是内置的用于将一些指令繞到其他指令上。這樣每次當vim指令運作時,相應的别名會啟動預設帶剪切闆的gvim。

現在,用類似的方式編輯你的‘.vimrc’檔案(以防你沒有 .vimrc檔案,生成這樣一個檔案然後再回來)。

# vim ~/.vimrc

追加下面這行并儲存檔案。

autocmd vimleave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")

現在在vim中打開任何檔案并高亮部分文本(使用'v'指令)并按下'y'。嘗試在vim外面的任何地方粘帖(關不關vim都行),你就發現vim裡面複制的内容被粘帖出來了。

運作下面的指令來生成.vimrc檔案(如果你已做了就跳過這部分)。

# cd [傳回到你的主目錄]

# vim .vimrc

在vim中在按下esc鍵後運作下面的指令(在vim中,每個指令是在按下esc鍵後也就是帶你進入指令模式後運作的)。

:r $vimruntime/vimrc_example.vim

:w

原文釋出時間為:2014-03-25

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀