前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim常用复制粘贴命令

vim常用复制粘贴命令

原创
作者头像
用户1685462
修改2021-09-06 10:27:14
5K1
修改2021-09-06 10:27:14
举报
文章被收录于专栏:网站教程网站教程

1、vim常用复制粘贴命令

Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P

PS:

vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某种功能,只是方向不同,比如:

  1. w 跳转到下个word,W:跳转到上个word  
  2. f  某行正向查找并跳转    F: 反向....  

然后部分双写的字母有行操作:

  1. yy   复制一行  
  2. dd   删除一行  

所以,

  1. p就是在当前光标后粘贴,P就是在当前光标前粘贴  

另外,说完p,其实还有几个命令有时也是很有用的

  1. gp,和p的功能基本一致,只是粘贴完,它会把光标移动至粘贴内容之后;gP同理  
  2. :pu[t] ,注意,这个是在命令界面输入的pu/put,它的意思是把x寄存器的内容粘贴到下一行  

2、vim的寄存器和系统剪贴板

寄存器简介

vim强大之处之一就是它自带一堆寄存器,每个寄存器独立使用,你可以在不同寄存器中存储不同数据,命令,你可以把这个想象成一个加强版的剪贴板,当然它的功能不止剪贴板这么简单。如果你想看vim的官方文档有关部分:

  1. :help  registers  

根据官方手册:vim有9种寄存器

There are nine types of registers:                      registers E354 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.无名(unnamed)寄存器:"",缓存最后一次操作内容;

2.数字(numbered)寄存器:"0 ~"9,缓存最近操作内容,复制与删除有别, "0寄存器缓存最近一次复制的内容,"1-"9缓存最近9次删除内容

3.行内删除(small delete)寄存器:"-,缓存行内删除内容;

4.具名(named)寄存器:"a ~ "z或"A - "0Z,指定时可用;

5.只读(read-only)寄存器:":,".,"%,"#,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名;

6.表达式(expression)寄存器:"=,只读,用于执行表达式命令;

7.选择及拖拽(selection and drop)寄存器:"*,"+,"~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用;

8.黑洞(black hole)寄存器:"_,不缓存操作内容(干净删除);

9.模式寄存器(last search pattern):"/,缓存最近的搜索模式。

至于每个寄存器更加具体的使用方法,我希望大家能查询手册,毕竟,这篇文章重点不在寄存器,可能哪天会写一篇小记讲讲寄存器吧

基本操作

聊聊寄存器的基本操作把

现在输入命令,你就可以查询一下目前寄存器的情况

  1. :reg  

寄存器的使用方法也很简单:通过“ 加上 寄存器名,就可以访问特定的寄存器:

  1. "ap      粘贴字母a寄存器内容  
  2. "1y      把选取内容复制到数字寄存器1  

系统剪贴板

细心的人已经发现我重点标注的寄存器部分了,就是那个选择及拖拽寄存器,这就是系统的剪贴板,我们通常使用的ctrl+c  ctrl+v 的内容就保存在这个寄存器中,所以你要把需要复制的内容放在+寄存器中,就可以在gui界面中用粘贴或ctrl+v粘贴了,同理,粘贴在vim中也一样

  1. "+y    复制到系统剪贴板  
  2. "+p    粘贴  
  3. "+gp  粘贴并且移动光标到粘贴内容后  

但是光是输入命令"+p就已经让人觉得很麻烦了,这时候,vim的map功能就又可以大显神通了,我们只需要把“+y  和 ”+gp  map到你喜欢的快捷键上即可:

首先打开vimrc(如果没有,请创建一个)

  1. vim ~/.vimrc  

然后在其中输入:

  1. nmap <c-v> "+gp  
  2. nmap <c-c> "+y  

你现在就可以使用ctrl+c  和ctrl+v 了,但是!我本人是不推荐用这个快捷键的,因为本身<c-v>是我很常用的块命令

所以,我一般修改成:

  1. nmap <leader>v "+gp  
  2. nmap <leader>c "+y  

至于<leader>是什么按键,就可以按照你的喜好来拉,我的是','

  1. let mapleader=","  

ps.说一下,我用的是nmap,说明这个命令只有在normal情况下才生效,在insert模式下是不生效的,为什么要这样设置呢?因为有时候你确实需要输入<leader>c/v的内容,比如,c  ,v ,而且,vim主要操作我觉得还是应该在normal模式下,这才是vim的高效的原因。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、vim常用复制粘贴命令
  • 2、vim的寄存器和系统剪贴板
    • 寄存器简介
      • 基本操作
        • 系统剪贴板
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档