vi中系统剪切板的设置

在vi中,如果编译时没有clipboard属性,将vi中的内容拷贝到系统剪切板有些麻烦。
可以用如下的方法,查看vi 是否支持系统剪切板的功能:

[email protected]:~$ vi --version | grep clipboard
-clipboard       +iconv           +path_extra      -toolbar
+eval            +mouse_dec       +startuptime     -xterm_clipboard

如果如上所示,不支持系统剪切板功能,可以如下在.vimrc中的设置,解决问题:

" 拷贝粘切到系统的剪贴板
if has("win32")||has("win95")||has("win64")||has("win16")
    set clipboard=unnamed

elseif has(‘unix‘)
    vmap <C-c> y:call system("xsel -ib", getreg(‘"‘))<CR>
    nmap <C-v> :call setreg("\"",system("xsel -o"))<CR>p

elseif has(‘mac‘)
    vmap <leader>y        y:call system("pbcopy", getreg("\""))<CR>
    nmap <leader>p        :call setreg("\"",system("pbpaste"))<CR>p

endif

对于Linux ,需要安装xsel ,命令如下:

sudo apt-get install xsel

xsel是很小的软件,大概只有9k左右的空间占用,也没有很特别的依赖库,很是方便。

时间: 2024-10-12 04:16:35

vi中系统剪切板的设置的相关文章

Java中有关剪切板的操作

Java提供两种类型的剪贴板:系统的和本地的. 本地剪贴板只在当前虚拟机中有效.Java允许多个本地剪贴板同时存在,可以方便地通过剪贴板的名称来进行存取访问. 系统剪贴板与同等操作系统直接关连,允许应用程序与运行在该操作系统下的其它程序之间进行信息交换. 在进一步深入之前,先看看与剪贴板相同的java类,这些类主要包含在java.awt.datatransfer包中,主要有以下几种: Clipboard类: 此类实现一种使用剪切/复制/粘贴操作传输数据的机制. ClipboardOwner接口:

vSphere Client中虚拟机与客户机中的剪切板不能够拷贝、粘贴

现象 vSphere Client中的虚拟机不能够与本地电脑之间进行文字的复制.粘贴 原因 vSphere 4.1开始,处于安全考虑拷贝.粘贴选项是被禁用的 解决 保证客户机安装了VMware Tools 通过vSphere Clinet 登录vCenter Server系统并关闭虚拟机电源. 选中虚拟机点击 摘要(Summary) 点击编辑设置 (Edit Settings) 浏览导航条到 选项 > 高级 > 常规 (Options > Advanced > General )

Chrome浏览器读写系统剪切板

IE浏览器支持直接读写剪切板内容: 1 window.clipboardData.clearData(); 2 window.clipboardData.setData('Text', 'abcd'); 但是这种方式不安全,很容易泄露用户的隐私,所以现在浏览器如chrome都不支持这种方式了. 读取系统剪切板 查了很多资料,如果是粘贴系统剪切板内容,前提是先去读取系统剪切板内容. 获取事件对象:粘贴事件提供了一个clipboardData的属性,如果该属性有items属性,那么就可以查看item

vim与系统剪切板之间的复制粘贴

背景 vim各种快捷建溜得飞起,然而与系统剪切板之间的复制粘贴一直都是我的痛. 每次需要从vim中拷贝些文字去浏览器搜索,都需要用鼠标选中vim的文字后,Ctrl+c.Ctrl+v,硬生生掐断了纯键盘的流畅感 而且,vim中的块选择多爽,如果只想要拷贝某一个块的数据,鼠标操作就完全没辙了 忍无可忍,无需再忍,今天就彻底解决这个问题 vim与系统剪切板之间的交互 vim支持clipboard特性 本章参考自 NearXDU的博客 确认vim编辑器是否支持clipboard特性 [[email pr

# vim与系统剪切板交互

vim与系统剪切板交互 vim中拥有不少的剪切板(当然,现在的windows10也拥有不少的剪切板).但是有时候与系统 的剪切版的交互不太习惯,甚至都不知道如何与系统的剪切板交互. 因为毕竟在windows中的编辑器一般都只有一个剪切板,并且是系统剪切板.所以很容易的 就可以和系统中的其他软件交互. 然而,其实vim也可以很容易就和系统交互. vim中拥有多个剪切板.其中"为无名剪切板(默认剪切板),一般操作的内容都在这里.而0号剪切板为最近操作的内容,*剪切板关联着系统剪切板,我们就可以通过这

Android系统剪切板

Android系统剪贴板 复制字符串到系统剪切板 /** * 复制文本到剪切板 * * @param text * @return */ @SuppressWarnings("deprecation") public boolean copyStringToSystem(String text) { try { if (android.os.Build.VERSION.SDK_INT > 11) { android.content.ClipboardManager c = (an

MFC中对于剪切板的简单操作

以ASCII编码的文本为例: 复制操作: char sc[]="要复制的文本"; HGLOBAL hmem=NULL; if (OpenClipboard()) //是否成功打开剪帖板 {     if (EmptyClipboard())//清空成功,则继续     {         hmem=GlobalAlloc(GHND,sizeof(sc));//memalloc strlen+1 \0         char* pmem= (char*)GlobalLock(hmem)

vue中使用剪切板插件 clipboard.js

vue中使用剪切板需要借助一个插件,clipboard,使用方法还是很简单的,先下载,然后引入: npm i clipboard -S //引入 import Clipboard from 'clipboard'; 下面就是使用了,比如说,比较常见的是,上面一行文字,下面有一个复制的按钮, <p id="share-code">{{init.code}}</p> <button class="copy-btn" data-clipboa

kotlin实现复制内容到系统剪切板

//将数据转换为ClipData类 var str:ClipData=ClipData.newPlainText("Label",myArticle.text) //构造一个ClipboardManager类,也就是剪切板管理器类 var cm:ClipboardManager= getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager //最后将数据复制到系统剪切板上 cm.setPrimaryClip(str)