vim linux 案例,跨越终端中多个vim实例访问剪切板内容

Vim (Vi IMproved)是一款在程序员之间非常受欢迎的文本编辑器。它在执行不同的快捷命令操作上有它自己的特长。

1b15d28004bac71873952ab91f9d2efa.png

比如,要拷贝高亮的文本,我们使用‘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-ViIMproved7.2(2008Aug9,compiledApr5201210:12:08)

Includedpatches:1-411

Modifiedby<bugzilla@RedHat.com>

Compiledby<bugzilla@redhat.com>

HugeversionwithGTK2 GUI.Featuresincluded(+)ornot(-):

+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++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

aliasrm='rm -i'

aliascp='cp -i'

aliasmv='mv -i'

aliasvim='gvim -v'

# Source global definitions

if[-f/etc/bashrc];then

./etc/bashrc

fi

这个alias是内置的用于将一些命令绕到其他命令上。这样每次当vim命令运行时,相应的别名会启动默认带剪切板的gVim。

现在,用类似的方式编辑你的‘.vimrc’文件(以防你没有 .vimrc文件,生成这样一个文件然后再回来)。

# vim ~/.vimrc

追加下面这行并保存文件。

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

现在在vim中打开任何文件并高亮部分文本(使用'v'命令)并按下'y'。尝试在vim外面的任何地方粘帖(关不关vim都行),你就发现vim里面复制的内容被粘帖出来了。

附:生成 .vimrc 文件

运行下面的命令来生成.vimrc文件(如果你已做了就跳过这部分)。

# cd [返回到你的主目录]

# vim .vimrc

在vim中在按下ESC键后运行下面的命令(在vim中,每个命令是在按下ESC键后也就是带你进入命令模式后运行的)。

:r $VIMRUNTIME/vimrc_example.vim

:w

推荐阅读:

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值