天天看点

跨越终端中多个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中国”

继续阅读