编辑器 - 如何从(并复制到)系统剪贴板进行vim粘贴?

与其他编辑器不同,vim商店将文本复制到自己的剪贴板中。 因此,我很难从网页复制一些文本并将其粘贴到当前的工作文件中。 碰巧我必须打开gedit或手动输入。

我可以将vim粘贴到系统的剪贴板上吗?

24个解决方案

757 votes

vim-gtk和+clipboard寄存器用于系统的剪贴板(vnoremap "*y)。 根据您的系统,他们可能会做不同的事情。 例如,在不使用X11(如OSX或Windows)的系统上,"*寄存器用于读取和写入系统剪贴板。 在X11系统上,可以使用两个寄存器。 有关详细信息,请参阅:help x11-selection,但基本上"*类似于X11的PRIMARY选择(通常复制您使用鼠标选择的内容并使用鼠标中键粘贴),而"+类似于X11的CLIPBOARD选择(适当的剪贴板)。

如果一切都超过你的头,请尝试使用vim-gtk或+clipboard将一行复制到系统的剪贴板。 假设您有适当的编译选项,那么一个或另一个应该可以工作。 您可能希望将其重新映射到更方便的地方。 例如,您可以将vnoremap "*y放在〜/ .vimrc中,这样您就可以直观地选择并按Ctrl + c来拖动到系统的剪贴板。

请注意,如果vim-gtk返回0,则无法从系统剪贴板复制/粘贴。在这种情况下,vim不会使用+clipboard功能进行编译,您必须安装其他版本或重新编译它。 默认情况下,一些Linux发行版提供了最小的vim安装,但通常如果你安装vim-gtk软件包,你可以获得额外的功能。

您还可以查看:help paste中描述的:help clipboard选项。在这种情况下,您可以使用:set paste或:set nopaste使所有yanking / deletion操作自动复制到系统剪贴板。 在某些情况下,如果您将其他内容存储在剪贴板中,因为它会覆盖它,这可能会带来不便。

要粘贴,您可以使用:help clipboard或:help paste(同样,取决于您的系统和/或所需的选择),或者您可以将这些映射到其他内容。 我明确地键入它们,但我经常发现自己处于插入模式。 如果您处于插入模式,您仍然可以使用:set paste或:set nopaste将其粘贴到适当的缩进处。请参阅pastetoggle。

值得一提的还有vim的:help clipboard选项(:help paste)。 这会将vim置于一种特殊的“粘贴模式”,禁用其他几个选项,使您可以使用终端仿真器或多路复用器熟悉的粘贴快捷方式轻松粘贴到vim中。 只需键入:set paste即可启用它,粘贴您的内容,然后键入:set nopaste以禁用它。 或者,您可以使用pastetoggle选项设置切换模式的键码(:help pastetoggle)。 我建议使用寄存器而不是这些选项,但如果它们仍然太可怕,那么当你完善你的vim印章时,这可能是一个方便的解决方法。

有关更多详细信息,请参见:help clipboard。

Conner answered 2018-12-24T03:05:22Z

110 votes

您可以通过gnome-terminal快捷方式复制到vim进行粘贴。 使文件处于插入模式并使用

按Ctrl + Shift+ V。

请事先记住

:set paste

避免弄乱压痕。

neel answered 2018-12-24T03:05:55Z

37 votes

Linux的

在我的Linux系统上,+和*寄存器映射到X11选择,可以使用鼠标中键粘贴。 当使用:set clipboard=unnamed和:set clipboard=unnamedplus时,寄存器映射到剪贴板,并可以使用CTRL-V粘贴。

具体细节似乎与配置和系统有关,因此您的里程肯定会有所不同。 不过,它肯定会让你指向正确的方向。

也可以看看

[http://vim.wikia.com/wiki/Accessing_the_system_clipboard]

Todd A. Jacobs answered 2018-12-24T03:06:33Z

36 votes

对于我的配置适用于复制和粘贴

" copy and paste

vmap "+yi

vmap "+c

vmap c"+p

imap "+pa

lis2 answered 2018-12-24T03:06:53Z

30 votes

这将是您在vimrc中为此目的所需的行:

set clipboard+=unnamed " use the clipboards of vim and win

set paste " Paste from a windows or from vim

set go+=a " Visual selection automatically copied to the clipboard

Danniel Little answered 2018-12-24T03:07:13Z

16 votes

剪贴板

有一个特殊的寄存器用于存储这个选择,它是“*寄存器。 除非有关于什么文本的信息,否则这里没有任何内容选中即将更改(例如,在某处单击鼠标左键),或何时更改另一个应用程序想要粘贴选定的文本。 然后放入文本在“*寄存器中。例如,要切断一条线并使其成为当前的线选择/把它放在剪贴板上:

"*dd

同样,当您要粘贴其他应用程序中的选择时,例如,通过单击鼠标中键,选择将放在“*寄存器中首先,然后'put'像任何其他寄存器一样。 例如,要把选择(CLIPBOARD的内容):

"*p

登记E354

> There are nine types of registers:

> 1. The unnamed register ""

> 2. 10 numbered registers "0 to "9

> 3. The small delete register "-

> 4. 26 named registers "a to "z or "A to "Z

> 5. four read-only registers ":, "., "% and "#

> 6. the expression register "=

> 7. The selection and drop registers "*, "+ and "~

> 8. The black hole register "_

> 9. Last search pattern register "/

从剪贴板粘贴

1. Clipboard: Copy

2. Vim insertmode, middle mouse key

检查终端中的X11剪贴板支持

当您想在终端中运行Vim时,您需要查找使用剪贴板支持编译的Vim版本。从控制台检查X11-clipboard支持,输入:

% vim --version

如果你看到“+ xterm_clipboard”,你很高兴。

[http://vim.wikia.com/wiki/Accessing_the_system_clipboard]

X服务器维护三个选项,称为:

小学,中学和剪贴板

PRIMARY选择通常用于实现复制和   通过鼠标中键粘贴。 SECONDARY和CLIPBOARD   应用程序使用的选择较少。

[http://linux.die.net/man/1/xsel]

The Demz answered 2018-12-24T03:08:27Z

12 votes

我尝试了上面的建议,但没有一个在我的环境中工作。 (Windows PuTTY克隆ssh)

一些额外的谷歌搜索出现了:[https://unix.stackexchange.com/questions/110684/copy-paste-into-sshd-vim-from-local-windows-clipboard]

其中一条评论建议使用SHIFT+INSERT,它可以将我桌面的剪贴板粘贴到Vim的缓冲区。 Ctrl-C已经在从Vim复制到桌面的剪贴板。

jinksPadlock answered 2018-12-24T03:08:57Z

11 votes

我认为这个问题应该得到一个更客观的答案。

进入粘贴模式

退出

:设置粘贴

按我

SHIFT +插入(在剪贴板上复制文本)

离开粘贴模式

退出

:设置nopaste

按我

您粘贴了文本,然后您可以再次键入。

ivanleoncz answered 2018-12-24T03:10:00Z

8 votes

没有+剪贴板所以我想出了使用xsel的替代解决方案:

添加到〜/ .vimrc:

vnoremap :w !xsel -b

rotestein answered 2018-12-24T03:10:28Z

6 votes

对于vim安装不支持*和+寄存器的人员的快速说明。 没有必要从剪贴板下载新的vim安装进行粘贴。 这是另一种方法:

1)安装parcellite(内存占用少的剪贴板管理器);

2)在.vimrc文件中,添加以下内容:

command Clip r !parcellite -c

3)重启vim。

现在当您输入:Clip作为ex命令时,剪贴板的内容将粘贴在光标处。 您还可以将新命令映射到功能键,以便能够通过一次击键执行此操作。

lovecraftian answered 2018-12-24T03:11:06Z

3 votes

这对我有用:Ctrl + Shift + V.

Boseam answered 2018-12-24T03:11:26Z

2 votes

继Conner的回答之后,这很好,但是插入模式下的map "+p和C-r C-p +有点不方便。 从命令模式Ditto "*p和"+p。

一位VIM大师建议如下将map "+p映射到C-r C-p +。

您只能使用map "+p进行插入模式

如果你真的想要覆盖块状视觉模式(他不推荐视觉模式)   模式很好)你可以有map "+p

barlop answered 2018-12-24T03:12:00Z

1 votes

在:set clipboard=unnamed的设置之上,你应该使用mvim -v,如果你在Mac OS X 10.9上的Terminal.app上使用vim,你可以使用brew install macvim。 默认vim不支持剪贴板选项。

Nobu answered 2018-12-24T03:12:20Z

1 votes

值得一提的是,在使用Vim的OSX上,您可以使用鼠标选择文本,Cmd-C复制到OSX系统剪贴板,复制的文本将在Vim外部的剪贴板中可用。

换句话说,OSX将其视为常规窗口,这就是备受诟病的Apple“Command”按钮派上用场的地方。

B-30

B-30 answered 2018-12-24T03:12:49Z

1 votes

根据@ lis2的答案,我使用了一个更简单的配置,不会强制插入模式结束:

" Copy and paste

if has('clipboard') && !has('gui_running')

vnoremap "+y

vnoremap "+d

vnoremap "+p

inoremap +

endif

请注意,所有这些都覆盖默认的Vim映射:

i_CTRL-P:停止可视模式

i_CTRL-P:从数字中减去[count]

i_CTRL-P:blockwise可视模式

i_CTRL-P:字面插入下一个非数字,也映射到i_CTRL-P

作为替代方案,可以使用分别在“yank”,“delete”和“put”Vim动词中启发的键:i_CTRL-P,和。 这些只会覆盖一个默认映射:

i_CTRL-P:向后搜索关键字以完成

ericbn answered 2018-12-24T03:13:40Z

1 votes

你真正需要的是EasyClip。 它会做到这一点,还有更多......

Scott Wade answered 2018-12-24T03:14:00Z

0 votes

当我使用未与Gnome集成的Debian vim时(vim --version | grep clip#显示没有剪贴板支持),我可以在按住Shift键并用鼠标选择文本后复制到剪贴板,就像任何 其他诅咒计划。 正如我从@Conner的评论中看到的那样,终端(在我的情况下是gnome-terminal)在感知到我的Shift按下时关闭了它的鼠标事件报告。 我想基于curses的程序可以在将某个Escape序列发送到终端后接收鼠标事件。

eel ghEEz answered 2018-12-24T03:14:21Z

0 votes

如果您在Windows上并且想要使用p粘贴系统剪贴板的内容,请键入此命令。

:set clipboard = unnamed

这解决了我的问题。

vincent mathew answered 2018-12-24T03:14:46Z

0 votes

有两种简单的方法可以做到这一点。 使文件处于插入模式和1)按下鼠标中的中间按钮(滚轮),或2)Ctrl + Shift + V.

user1898814 answered 2018-12-24T03:15:06Z

0 votes

对于某些国际键盘,您可能需要按“+ Space”以获得"。

因此,在这种情况下,您必须按“Space + y或”Space * y进行复制。

并且“Space + p或”Space * p要粘贴。

Arthur F answered 2018-12-24T03:15:35Z

0 votes

如果您在MAC OSX中使用vim,不幸的是它附带旧版本,并且不符合剪贴板选项。 幸运的是,自制软件可以轻松解决这个问题。

安装vim:

yy

安装gui版的vim:

yy

重启终端才能生效。

将以下行附加到yy

set clipboard=unnamed

现在您可以使用yy复制vim中的行并在系统范围内粘贴它。

anonymous answered 2018-12-24T03:16:30Z

0 votes

如果你想改变你的vimrc等其他解决方案是好的...但是我想要一个简单的方法从vim复制到我的系统键盘。 这就是我提出的。

使用可视模式选择要复制的文本y *

按y *(它将自动扩展为显示y +)

键入y *或y +(取决于您的系统)将选定的文本拉到系统剪贴板

NateW answered 2018-12-24T03:17:03Z

0 votes

最简单的解决方案,也可以通过ssh -Y machine在不同的Linux机器之间工作:

检查vim是否支持X-11剪贴板:ssh -Y machine。如果报告回-clipboard和-xterm_clipboard,则应安装vim-gtk或vim-gnome(gvim on arch linux)

将以下行添加到您的ssh -Y machine:

ssh -Y machine

如果您通过ssh在其他计算机上登录,请使用选项-Y:ssh -Y machine

现在复制和粘贴应该在单个和不同的机器上完全按预期工作,只需使用y用于yank,p用于粘贴。 NB在要使用此功能的所有计算机上修改.vimrc。

chao answered 2018-12-24T03:17:46Z

0 votes

如果您先使用鼠标

:set paste

然后将粘贴right click mouse和缓冲区中的内容

Mohammed Rafeeq answered 2018-12-24T03:18:10Z

linux中vim编译器中复制粘贴,编辑器 - 如何从(并复制到)系统剪贴板进行vim粘贴?...相关推荐

  1. linux中python编译器的配置_方舟编译器环境配置及源码编译过程详解

    1)首先将方舟编译器源代码包下载到本地. https://www.openarkcompiler.cn/download/OpenArkCompiler-0.2.tar.gz 2)Ubuntu系统中方 ...

  2. Linux: 远程登陆Linux之 X-Shell和Xftp的下载和使用+vi和vim编译器模式转换及快捷键

    方法一:官网下载.官网为家庭/学校免费 - NetSarang Website.外国网站,有时会比较卡,但是都能打开.需要邮箱 注:这是它们的官网,选择both就是同时下载这两个文件,注意要填写你自己 ...

  3. Linux中Vim编译器的基本使用规则介绍

    vim 编译器的使用 vim +文件名 (i进入编辑)(Esc进入命令模式) (:进入末行模式) (w:写入磁盘模式) 写入后自动退回到命令模式 :x退出命令模式:q!不保存退出wq 保存退出 一般模 ...

  4. 【vim】系统剪切板、vim寄存器之间的复制粘贴操作命令?系统剪切板中的内容复制粘贴到命令行?vim文本中复制粘贴到命令行

    一.系统剪切板和文本内容的复制粘贴 1.1 从系统剪切板复制粘贴到文本中 需要操作3次: 分别是英文双引号.一个加号或梅花号,最后是一个p 也即"+p 或者直接使用组合键[Shift + i ...

  5. Linux文本编辑器——vim编译器的全面讲解

    前言 这是我听老师讲课做的笔记,考试要看的. 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 vim编译器 一 概述 二 vim 编译器常用的操作命令 2 ...

  6. 在linux中的vi中的删除操作,linux中vi和vim操作

    一.简单介绍 vi 和 vim 类似于windows的文本编辑器 所有的Linux系统都会内置vi文本编辑器 vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能 ...

  7. 详解Linux系统Vi 和 Vim中正常模式、编辑模式、命令模式相互转化,以及vim命令使用

    详解Linux系统Vi 和 Vim中正常模式.编辑模式.命令模式相互转化 vi 和 vim 的基本介绍 vi 和 vim 的三种常见模式 正常模式 正常模式常用命令 插入模式/编辑模式 命令行模式 v ...

  8. CSDN中写文章时,代码和注释的快速复制粘贴方法

    需要的工具:EditPlus文本编译器 举例说明:下图是要粘贴进文章的内容(keil4编写的) 第一步:将内容复制粘贴至EditPlus文本编译器中,如下图 第二步:保存文件,不保存也行 第三步:单击 ...

  9. linux 在命令行中复制的快捷键_在 Linux 中加速工作的键盘快捷键 | Linux 中国

    学习键盘快捷键将使生产率提高 3.3%-- S Sathyanarayanan 操作鼠标.键盘和菜单会占用我们很多时间,这些可以使用键盘快捷键来节省时间.这不仅节省时间,还可以使用户更高效. 你是否意 ...

  10. linux vi全字匹配搜索,vi编辑器中的匹配搜索操作

    玩转VIM编辑器-强力搜索 搜索导航 导航键 描述 / 向前搜索,前向 ? 向后搜索,反向 n 跳转到下一个搜索词所在位置 N 跳转到前一个搜索词所在位置 //或?? 重复前面的搜索或反向搜索 跳转到 ...

最新文章

  1. 用串口模拟printf函数输出
  2. Python基础入门:*和**的使用教程
  3. 前端学习(1895)vue之电商管理系统电商系统之组件的分页显示
  4. matlab sar 斑马图,星载合成孔径雷达(SAR)斑马图仿真与研究
  5. springcloud灰度发布实现方案
  6. python乱码怎么办_python中输出中文乱码怎么解决
  7. Django中_meta 部分用法
  8. set 排序_堆排序C++实现
  9. Android 使用手机向手表安装任意.apk
  10. css img 适配尺寸_CSS——img标签图片适配居中问题
  11. java实现视频加密_JAVA实现视频加密
  12. 总结安卓应用市场App首发活动规则
  13. Unity3D制作平面FlappyBird小游戏
  14. Allegro PCB Designer 16.6打开brd文件空白的方法
  15. 使用endnote在毕业论文中插入文献
  16. VBA word自动排版(10)-结合SQL数据库批量替换WORD文本
  17. 不可忽视的软件测试环境问题
  18. Android 加固包之后,vivo手机安装时出现解析包错误的情况
  19. 网络工程师备考经验总结
  20. Weakly Supervised Data Augmentation Net-work (WS-DAN)

热门文章

  1. IE地址栏可输入的最大字符数
  2. MyBatis一对多查询collection三表三层查询
  3. [软件测试] - No.1 Fault Error Failure 区别
  4. 数学建模学习(41):单因素方差分析
  5. 怎么使用7zip进行分批压缩_7z解压软件(7-zip)分卷压缩怎么做?
  6. POJ原题测试数据合集+使用方法
  7. WebGL着色器变量(attribute、uniform和varying)
  8. 微软开源 Python 自动化神器 Playwright
  9. 新点互联互通_新点驱动(江苏省互联互通版)
  10. 【PBR系列五】镜面反射BRDF模型(Specular BRDF)及实现效果