vim粘贴快捷键(vim 黏贴)

vim粘贴快捷键(vim 黏贴)

vim 黏贴

在命令行下输入命令 vim --version | grep clipboard 看一下输出结果中clipboard前面是+还是- 如果是+,这就意味着vim是可以与系统共享剪切板的 剪切板在vim中也是一个寄存器,它的名字是 * ,也就是一个双引号 使用方法是,比如你想将一行的内容复制到剪切板中,选中内容后,按下 "*y (也就是一个双引号,一个星号,一个字母y) 这样选中的内容就被复制到剪切板中了 选中文本的方法是使用vim的visual模式

vim 粘贴命令

一.先要支持系统粘贴板1.shell中运行:vim --version | grep "Clipboard",clipboard前是-号,执行22.shell中运行:sudo apt-get install vim-gnome ,安装vim的图形化界面3.完成2后,再运行1的命令,看到clipboard前面已变为+号,就可以了二、用vim完成文件之间的复制粘贴1.用vim打开一个文件,用鼠标选中,按y,低行已经显示了你复制了几行2.到你想要粘贴的文件里,定位到指定位置,按鼠标中间键,即可。

vim中怎么粘贴

Vim批量注释与块选#1. 块选择模式【Ctrl + v】进入块选择模式,然后【移动光标】选中你要注释的行,再【按I】进入行首插入模式【输入注释符号】如 // 或 #,输入完毕之后,Vim会自动将你选中的所有行首都加上注释#2. 替换命令 批量注释:使用下面命令在指定的行首添加注释:【:起始行号,结束行号s/^/注释符/g】 取消注释:【:起始行号,结束行号s/^注释符//g】 例子:在10 - 20行添加 // 注释:10,50s#^#//#g在10 - 20行删除 // 注释:10,20s#^//##g在10 - 20行添加 # 注释:10,20s/^/#/g在10 - 20行删除 # 注释:10,20s/^#//g 注意例子中正则的分割符使用的是相反的符号,如果匹配// 那么使用 #作分隔符这样不需要对/作转义处理,节省输入次数VIM区块复制【shift + v】进入块行选择模式,【上下】选择需要的行,【按y】复制,【按Esc】退出区块选择,在合适的行【按p】粘贴。

vim复制一行快捷键

在非可视模式下,vim没有选择vim 模式:编辑模式和命令模式[ESC]进入命令模式,以下在命令模式下进行:vim的命令大致结构 [次数][动作][范围]如 yy 是复制一行文本的命令,则5yy 表示复制从前行开始的5行p是粘贴,粘贴的起始行为当前行的下一行

vim右键粘贴

根据平台不同,要分两种情况。先用下面命令确定你属于哪一种,

情况一,

如果结果里你找到加号开头的, 恭喜你,你的vim没问题,是你姿势问题。

用 代替将选中的内容复制到系统剪贴板,效果和一致。

用代替将剪贴板内容复制到指定位置,也可以用。

,,,也一样,用之前前面加。

如果想偷懒用直接把内容复制到系统剪贴板,需要到vim配置文件里加一行属性。用下面命令开始配置,

然后,加入下面这行,

现在你的,,,已经能和 和 一个效果,并且能互相混用。

情况二,

如果找到的是负号开头的

说明你的vim不支持系统剪切板,我的MacOS系统自带vim就不支持,所以跑来了。需要先重新安装vim,

Linux系统,

MacOS,

安装好之后,重复情况一的操作即可。

问题解决了,有几个细节再解释一下,满足一下好奇心。

首先,vim里,,,复制,剪切下来的内容临时存放在一个叫

vim寄存器(Register)

的地方。而且寄存器有好几个。下面vim命令可以看到寄存器列表,

最常用的默认寄存器叫

未命名寄存器(unnamed register)

。最近一次删除,修改,复制内容统统暂存这里(会覆盖,只保留最近一次任意操作)。感兴趣的同学可以看下表,其他寄存器都是干什么的。

而以及用到的是

系统剪贴板(system clipboard)

vim寄存器和系统剪贴板不是一个东西

。顾名思义,vim寄存器的数据作用域仅限于vim本地,甚至如果开多个vim窗口,每个窗口都有一套自己完整的寄存器,互相不影响。而系统剪贴板作为系统级别的全局变量,两边当然不能混用。

所以vim专门提供了寄存器作为对系统剪贴板的映射

。可以理解成自动把寄存器的内容再复制一份到系统剪贴板,前提是你得把属性设置成打开。有些版本(比如MacOS自带的vim)就不支持这个映射。重装vim就是为了打开这个开关。(如果有简便的直接改设置方法,请纠正我)。打开以后用命令把内容复制到和系统剪贴板关联的寄存器上。而只是复制到默认无名寄存器上。

最后就是把默认无名寄存器 和系统剪贴板也关联上。 就是用也可以备份到系统剪贴板。缺点是破坏了默认寄存器的本地性。因为操作也会被等同于处理,粘贴的是寄存器的内容, 粘贴的时候默认寄存器内容就会被覆盖。 表现出来的就是复制一次,到任意vim窗口都可以粘贴。但这个特性恰恰是很多人想要的。

还有个细节,大部分系统上和是等价的。但在有的系统上不等价,比如Linux,

:对应和用到的系统剪贴板:desktop clipboard ()

:对应图形界面中鼠标框选的内容(可以用鼠标中键黏贴):X11 primary selection ()

所以看到也不要慌,试试看用和能不能复制粘贴。可以的话就说明是混用的,不行就老老实实用。

以上。遇到此坑的同学了解一下。

参考文献:

Vim documentation: change

How to copy to clipboard in Vim?

如何将 Vim 剪贴板里面的东西粘贴到 Vim 之外的地方?

Accessing the system clipboard

Macbook终端vim使用系统剪切板

vim 快捷键

根据你的要求没有直接的快捷键。可以通过以下2个快捷键完成你的操作dgg 删除到文件首d0 删除到本行行首的位置希望能是你需要的。

vim复制粘贴快捷键

有个办法,应该可行的。

你试试(做好相关备份!)

比如说你要吧a.txt的东西复制到b.txt用vim打开b.txt。将光标定位到要复制插入的位置,然后进入命令模式中输入:r!cata.txt接下来就是保存啦,呵呵:wq

推荐阅读