剪切粘贴

回忆上节课内容

  • 我们大幅度地复习了整个 motion
  • 直接运动

    • h j k l
  • 行运动

    • 首行g g
    • 末行G
    • 第n行n G
  • 单词运动 wbe

    • w 是到下一个 word 的开头
    • b 是到当前 word 的开头
    • e 是到当前 word 的结尾
    • 除了 word 之外还有 WORD
  • 行头行尾

    • ^ 是到本行第一个非空字符
    • 0 是到本行第一个字符,不管是不是空格
    • g_ 是到本行最后一个非空字符
    • $ 跳到本行最后一个字符,即使他是空格
  • 行内跳跃和贴靠

    • 跳跃是f
    • 跳跃是F
    • 贴靠是t
    • 贴靠是T
  • 全文查找

    • 查找的话就是 /
    • 反向查找的话就是 ?
  • 文本区块

    • {、} 按段落移动
    • (、) 按句子移动
  • 这些 motion 都可以 d配合使用,完成快速删除的工作
  • 过程中还可以使用 [count] 进行翻倍
  • 删除的内容,放在 "" 寄存器中
  • 可以配合重复.
  • 而且以前的一些命令可以有了新的理解

回忆过去

  • 一些原来的操作可以有了新的写法

    • D 对应的d$
    • x 对应 dl
    • X 对应 dh
    • 体会多多运动左手无名指的快乐
  • 删除的内容,放在 "" 寄存器中
  • 那这个东西删了
  • 放在寄存器里
  • 我想粘贴到别的地方
  • 怎么办呢?

关于粘贴

  • 粘贴的话,应该离这个删除 d 的位置不远
  • h d 找到剪切的帮助文件在 change.txt
  • 文件中的 5.copying and moving text
  • 可以找到 p 应该就是粘贴对应的命令

  • 不是 paste
  • p 对应的是 put 放上去
  • 把什么放上去呢?
  • d 到寄存器的东西放上去

动手

  • 我们试一试

    • 我们输入一行 oeasy 然后对他进行 dd
    • 这个时候 oeasy 这一行就进入了寄存器 ""
    • 然后 p 一下,就会出现一个 oeasy
    • 9 p 就会出现 9oeasy
    • 真的可以!!!
  • 但是这里面有两个 p

    • 一个叫做 p 说是 after cursor
    • 另一个叫做 P 说是 before cursor

  • 啥意思呢?

上下

  • 先都删除 g g d G
  • 我们首先把标尺调出来 :ru
  • 然后插入 191

    • 9
    • i进入插入模式
    • 输入 1
    • esc退回到普通模式
    • o 换行回车
  • 然后再插入 192

    • 先esc进入正常模式(目的是打断输入状态)
    • i进入插入模式
    • 输入2
    • esc退回到普通模式
    • 8.

      • 把插入2这个事重复8
    • o换行
    • esc
  • 然后再尝试插入 13

    • 方法和上面一样
  • 最后插入一行 oeasy

    • 并用d d把他删除
    • 也就是把他放到了 "" 默认寄存器里面了

体会上下

  • 我们把光标移动到第 2
  • p这个时候
  • 寄存器""中的oeasy会放到2222222...

  • 用u撤销刚才的操作
  • 我们再试试 P,大写的这个

    • 我们把光标移动到第2
    • P这个时候
    • 寄存器 "" 中的 oeasy 会放到 2222222...

  • 他怎么知道这是一行?

细节

  • 如果寄存器里面的不是一整行呢?
  • 我们先:reg看一下寄存器""

  • 寄存器中除了oeasy还有个^J意思是包括换行符
  • 我们这次不用dd
  • 我们用d$

    • motion$意味着到行尾
    • 这样就把oeasy放进了寄存器""
    • 看一下:reg
    • ^J 换行这个消失了!
    • p一把!

  • 这个p也分大小写么?

    前后

  • 把光标移动到222222...52
  • 然后p

  • 他就在第52 后面 插入寄存器内容
  • u回来,还放在第52
  • 然后P
  • 他就在第52 前面 插入

常规操作

  • dw是删除单词

    • 这里删的没有换行符
    • 注意把后面的空格也删除了
    • 一并放入寄存器
  • wel是移动位置

    • 下一个word头 到 to的t
    • 下个word尾 到 to的o
    • 向右一格 到空格
  • p是粘贴到光标之后

常用的交换字符

  • x删除当前字符
  • p是在后面粘贴

总结

  • 我们这次的内容是粘贴
  • 粘贴的内容是:reg中的内容
  • 内容放在""寄存器中
  • 如果:reg删除的是一整行或者多行

    • 那么粘贴的时候就在当前行上面或者下面粘贴
  • 如果:reg删除的是不包括换行符

    • 那么粘贴的时候就在当前位置前面或者后面粘贴
  • p

    • 如果剪贴板里面是行

      • 那么在光标下面粘贴
    • 如果剪贴板里面不是行

      • 那么在光标后面粘贴
  • P

    • 如果剪贴板里面是行

      • 那么在光标上面粘贴
    • 如果剪贴板里面不是行

      • 那么在光标前面粘贴
  • 大小写对应的是粘贴位置
  • 有了删除和粘贴,我们其实可以做剪切的操作了
  • 但是如果我想要复制粘贴,那应该怎么办呢?
  • 下次再说

[Github地址] (https://github.com/overmind1980/vimtutorial)

[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)

[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

oeasy教您玩转vim - 39 - # 剪切粘贴的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. 实用!!!!springBoot加入微信扫码支付功能,有一说一还是挺有意思的

    基于springboot微服务加入微信支付的功能 在线微信支付开发文档: https://pay.weixin.qq.com/wiki/doc/api/index.html native扫码支付方式: ...

  2. vue xlsx组件 导出的excel表头插入内容

    主要就是sheet_add_dom这个方法, dom是带有table标签元素的dom节点. timeData是个二维数组:[["条件1","条件2"],[&qu ...

  3. 记录一次 对应用程序日志排查,老是刷出有本地ip登录Sqlserver数据库失败的日志

    在我电脑-计算机管理-事件查看器-windows日志-应用程序里 1秒中就刷很多条 用户sa登录某个数据库失败,客户端ip:192....; 我查看ip发现是本机的ip地址.也就是说有本地的应用程序在 ...

  4. Android启动过程-万字长文(Android14)

    在计算机启动过程和Linux内核Kernel启动过程介绍了计算机启动和内核加载,本篇文章主要介绍Android系统是如何启动的. 一.Android启动流程 Android系统的启动流程与Linux接 ...

  5. 机器学习策略篇:详解超过人的表现(Surpassing human- level performance)

    超过人的表现 讨论过机器学习进展,会在接近或者超越人类水平的时候变得越来越慢.举例谈谈为什么会这样. 假设有一个问题,一组人类专家充分讨论辩论之后,达到0.5%的错误率,单个人类专家错误率是1%,然后 ...

  6. 第二次大作业BLOG心得

    (1)前言: 知识点: ①ArrayLsit的知识点: ArrayList 是 Java 中的动态数组实现,它提供了自动调整大小的功能,可以根据需要动态增长或收缩. ArrayList 可以存储任意类 ...

  7. 任意树遍历,可以使用 goto 跳记号标注的

    先顺序进入到最后一个根的根部,完后扫描同级 同级扫描完用 goto跳代码改层数到倒数地二层 之后操作就是倒着往上搜索的,有难度,但是还是能做到的嘛 用 lisit 好像不需要别的,全用 list 连接 ...

  8. Unity3D 内存管理非代码技巧

    在场景管理器新建 gameobjct 使用代码在类初始化时 NEW 普肉fai包(包)然后将相同的类NEW够挂载到 gameobjct子节点上 在操控列表中类的时候用for循环遍历操作移动还是怎么样( ...

  9. 直播预告|把握转型浪潮下的机会,甄知科技教你保姆级IT服务管理

    近年来,5G.云计算.大数据.物联网.区块链.人工智能等新兴技术不断在企业中协同发展应用,推动着企业的数字化程度逐步加深.自新冠疫情发生以来,企业的远程服务.服务自助等服务需求激增,企业数字化转型需求 ...

  10. npm 发布自己的组件库

    npm 发布组件库步骤 第一步:注册 npm 账号 第二步:编写自己的组件库 第三部:编写 package.json 可以通过命令生成 npm init { "name": &qu ...