剪切进入

回忆上节课内容

  • 上次我们了解到了各种寄存器
  • :reg

    • 无名寄存器""
    • 数字寄存器"0-"9
    • 行内删除专用寄存器"-
    • 指定寄存器"a-"z"A-"Z
    • 3个只读寄存器":"."%

      • ". 里面存储着上次插入的内容
      • "% 里面存储着当前文件的名字
      • ": 里面存储着刚刚执行的命令
    • 轮换文件寄存器"#
    • 表达式寄存器"=
    • 选择和拖拽寄存器"*"+"~
    • 黑洞寄存器"-
    • 搜索模式寄存器"/
  • 插入模式下ctrl+r 再加寄存器名称
  • 可以粘贴指定寄存器中的内容
  • d、x、y、p都在在正常模式
  • 删除之后能否自动切换进入插入模式呢?
  • 翻帮助查到这个命令好像叫做 s

找到手册

  • 想要知道 s 的作用,就要查一查
  • 也可以用 :h s

  • 这个s和x有点像

    • 都是删除当前字符
    • 都是默认放入无名寄存器""
    • 如果设定某个命名寄存器,就放入命名寄存器
    • 都可以通过[count]翻倍
  • 不同在于删除之后的的模式

    • x 保持在 普通模式
    • s进入到了 插入模式
  • 这其实很爽
  • 因为很多时候删除了之后就是希望进入插入模式的!!!
  • S是删除当前这一行,然后进入插入模式

    • 相当于d$i

有用的c

  • c 的意思是change
  • 这个c和d有点像

    • 都是删除当前内容
    • 都是默认放入无名寄存器""
    • 如果设定某个命名寄存器,就放入命名寄存器
    • 都可以通过[count]翻倍
    • 而且都支持motion
  • 不同之处就是就是完成工作后

    • d 保持在普通模式
    • c进入到了插入模式

  • 比如我想把hello world!变成hello oeasy
  • 那么我需要

    • dw删除到当前单词word词尾
    • i然后再进入插入模式
    • 输入oeasy
    • 然后esc完成
  • 现在我只需要

    • cw删除到当前单词word词尾
    • 直接进入插入模式
    • 输入oeasy
    • 然后esc完成,一气呵成
  • 如果要删除的位置很远
  • 可以考虑cft
  • 配合.来操作

配合重复

  • n是下一个
  • .是cwfiveesc

    in操作

  • 这次我们的光标位置在这个单词中间

  • 我如果想要删除world怎么办?

    • 我需要先b回词头
    • cw删除到词尾
    • 这还是有点麻烦
  • 现在只需要一句话

    • ciw就可以一气呵成

in

  • 不论光标在单词里面什么位置
  • 只要是这个 word 范围内的都可以删除
  • 这个时候如果是 ciW 意味着不是 word 而是 WORD
  • 类似的还有·

    • ci(、ci(删除小括号里面的

  • ci[、ci]删除中括号里面的
  • ci"删除双引号里面的
  • ci'删除单引号里面的
  • 这在编程时是非常实用的!!!

文字对象

  • cis删除当前这句
  • cip删除当前这段

tag块标签

git clone http://github.com/overmind1980/vimtutorial.git
cd vimtutorial
vi oeasy.html
  • cit

    • 删除tag里面的内容
  • cat

    • 删除包括标签本身
  • c2it删除两层标签里面的

    • 这个功能在htmlxml很有效率

block块

  • ci{、ci}

    • 删除大括号里面的
  • ciB

    • 也有同样的效果
    • c2i{、c2i}删除两层大括号里面的
    • 这个功能也可以和 d、y配合,非常爽!!
    • 大规模程序块控制

关于ia的整理

  • h aw可以看到相关资料
  • w word 小词
  • W Word 大词
  • s sentence 句子
  • p paragraph 段落
  • () 小括号
  • [] 中括号
  • {} 大括号
  • t tag 标签

    • it 标签内部 不包含标签
    • at 标签外部 包含标签
  • "' 引号

细节

  • s

    • 相当于cl
    • 也相当于dl,再进入插入模式
  • S

    • 删除当前行d$
    • 再进入插入模式
  • C

    • 相当于c$
    • 也相当于d$,再进入插入模式
    • 也就是D,再进入插入模式
  • cc就是

    • 删除当前行并进入插入模式
    • 等同于S
  • 2C

    • 相当于删除两行,再进入插入模式
    • 也就是2D,再进入插入模式

总结

  • 这次我们学到的最有用的就是c

    • 他和d的区别就是删除之后进入到插入模式
    • c可以配合motion
    • 可以用ciw来快速删除当前光标所在的单词
  • 可i和a的文字块

    • w word 小词
    • W Word 大词
    • s sentence 句子
    • p paragraph 段落
    • () 小括号
    • [] 中括号
    • {} 大括号
    • t tag 标签

      • it 标签内部 不包含标签
      • at 标签外部 包含标签
    • "' 引号
  • 还有没有更快速的办法进行编辑吗?
  • 下次再说

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

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

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

oeasy教您玩转vim - 42 - # 剪切进入的更多相关文章

  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. 【题解】A18535.来自领导的烦恼

    题目跳转 思路:本题可以使用动态规划或递归的方式来实现,本质上是一道01背包的变型题.假设一共有\(n\)名员工,每一位员工的技能水平用\(a[i]\)表示.要使得两个部门的员工技能总和之差最小,意思 ...

  2. 浅析MySQL 8.0直方图原理

    本文分享自华为云社区<[MySQL技术专栏]MySQL8.0直方图介绍>,作者:GaussDB 数据库. 背景 数据库查询优化器负责将SQL查询转换为尽可能高效的执行计划,但因为数据环境不 ...

  3. Android项目代码规范

    项目代码规范 Android Studio的代码Style检查和inspect Code功能已经很强大,规范只负责代码结构和文件结构 带?的内容为可选或团队内协商内容 核心目标 提高可维护性: MVV ...

  4. WPF使用事件聚合器,实现任意页面跨页通信

    前言:最近几天有好几个小伙伴玩WPF,遇到不同页面,不知道要怎么传递消息.于是,我今天就来演示一个事件聚合器的玩法,采用prism框架来实现.作为福利,内容附带了主页面打开对话框时候直接通过参数传递消 ...

  5. uniapp SyntaxError: Unexpected token u in JSON at position 0 解决方案

    今天在做页面跳转传值的时候,一直出现下面的报错: 后来查看了下文档,说如果你的JSON数据是在上一个页面传值过来的话, 这时候在接收数据页解析JSON也会报该错误,因为此时并没有相关的JSON数据从上 ...

  6. 实时数据同步Inofity、sersync、lsyncd

    数据备份方案 企业网站和应用都得有完全的数据备份方案确保数据不丢失,通常企业有如下的数据备份方案 定时任务定期备份 需要周期性备份的数据可以分两类: 后台程序代码.运维配置文件修改,一般会定时任务执行 ...

  7. 三月二十六日 安卓打卡app开发日志

    今天上午 将打卡逻辑代码优化了一下 之后每天就只可以打卡一次了 public static String daka(String time_s, String time_e, String text, ...

  8. Python使用.NET开发的类库来提高你的程序执行效率

    Python由于本身的特性原因,执行程序期间可能效率并不是很理想.在某些需要自己提高一些代码的执行效率的时候,可以考虑使用C#.C++.Rust等语言开发的库来提高python本身的执行效率.接下来, ...

  9. Flutter 借助SearchDelegate实现搜索页面,实现搜索建议、搜索结果,解决IOS拼音问题

    搜索界面使用Flutter自带的SearchDelegate组件实现,通过魔改实现如下效果: 搜素建议 搜索结果,支持刷新和加载更多 IOS中文输入拼音问题 界面预览 拷贝源码 将SearchDele ...

  10. HDU2062题解 01背包而已

    RT,我就不解释了,题目连接http://acm.hdu.edu.cn/showproblem.php?pid=2602. 初学01背包的人可以做做 #include<iostream> ...