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