Linux中國

跨越終端中多個vim實例訪問剪切板內容

比如,要拷貝高亮的文本,我們使用『y』命令,並用『x』來剪切。但是,vim(不是gVim)剪切板的內容默認情況下是不能被其他的vim實例訪問的。

Vim版本信息中使用『+』表示啟用了系統剪切板。你可以運行『vim ­­–version』,如果你看不到像「+xterm_clipboard」而是顯示「­xterm_clipboard「,那麼會使用內部剪切板,其將不能被其它的vim實例訪問。

安裝gvim和parcellite

為了訪問vim剪切板的內容,你需要安裝gvim包。gVim是vim編輯器的GUI模式,它的剪切板選項默認啟用。

# yum install -y gvim

然後,使用RPMForge 倉庫安裝parcellite 包。Parcellite是一款輕量級,小巧而免費的Linux剪切板管理工具。

# 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
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.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

打開用戶的.bashrc文件。

# vim ~/.bashrc

加入別名並保存文件(按下『i』來插入行並按下ESC,接著運行:wq來保存並退出)。

# .bashrc

# User specific aliases and functions

alias rm=&apos;rm -i&apos;
alias cp=&apos;cp -i&apos;
alias mv=&apos;mv -i&apos;
alias vim=&apos;gvim -v&apos;
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

這個alias是內置的用於將一些命令繞到其他命令上。這樣每次當vim命令運行時,相應的別名會啟動默認帶剪切板的gVim。

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

# vim ~/.vimrc

追加下面這行並保存文件。

autocmd VimLeave * call system("echo -n $&apos;" . escape(getreg(), "&apos;") . "&apos; | xsel -ib")

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

附:生成 .vimrc 文件

運行下面的命令來生成.vimrc文件(如果你已做了就跳過這部分)。

# cd   [返回到你的主目錄]       
# vim .vimrc

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

:r $VIMRUNTIME/vimrc_example.vim 
:w

via: http://www.tecmint.com/accessing-clipboard-contents-across-multiple-instances-of-vim-from-terminal/

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國