可视化编辑

回忆上节课内容

  • 上次我们了解到可视模式
  • 其实可视化对应三种子模式

    • 字符可视模式 v
    • 行可视模式 大写V
    • 块可视模式ctrl+v
  • 我们先来了解字符可视化模式

    • 快捷键 v
    • 可配合各种motion
    • o切换首尾
  • 快速操作

    • 选中了之后可以进行以下操作

      • d
      • c
      • y
    • 可以用"a使用指定寄存器
  • 可以用ia快速选择范围

    • w 小词 W 大词
    • ()[] {} 各种括号
    • t 标签,编写网页的时候很有用
    • s 句子 p 段落
    • b 小括号,这个编写程序的时候很有用
    • B 大括号,编写程序的时候很有用
    • " ' `引号内
  • 以上是 字符 可视化模式
  • 那么 可视化模式是什么意思呢?

切换模式

  • 我们上次从正常模式切换到字符可视化模式用的是小写v
  • 如果想切回来呢?

    • 再摁下一下v
    • 或者esc
    • 或者ctrl+c
  • 这次我们切换到行编辑模式,用大写V

    • 可以看到左下角提示,"--- 可视· ---"
    • 切换过来之后可以快速的使用motion控制结束行的位置
    • 可以使用33G跳转位置
  • 也可以用o,切换选区首尾字符
  • 选区选好之后可以做操作了

操作方法

  • 行可视化模式选择的内容是
  • Vjj可以选中3行

    • V 选中当前行
    • j 加选下面一行
    • j 再加选一行

基本操作

  • 我们选择好了很多行之后怎么办呢?
  • 我们选好选取之后,就可以

    • d
    • c
    • y
  • 这和字符可视化模式一样的
  • 可以使用

    • D
    • C
    • Y
  • 可视化模式,大小写没什么区别
  • 不过对 字符 可视化模式,还是有区别的

使用命令行

  • 用命令行模式
  • 就像字符可视化模式一样
  • 比如我:
  • 左下角会出现:'<,'>就是从选区开头,到选区结尾

    • '< 选区开头
    • '> 选区结尾
  • 然后我们摁下d回车

    • 就把选区范围内都删除了
  • 我们可以:h '< 查看相应手册

  • '< 这种形式很像标记啊
  • 就像ma做标记、'a跳转到标记那样
  • 能否看看'<是否也是一个标记

选区标记

  • 做好选区
  • :marks <>查看标记
  • 可以查找到选区的开始和结束标记mark

  • 这刚好标记在了选取的开始结束位置
  • 想要恢复选区应该怎么办?

恢复选区

  • 做好了选区
  • 进入了命令行模式
  • ctrl+c 丢失了选区
  • 想要恢复
  • '<v'>

    • '< 跳到原选区开头
    • v 进入字符可视化模式
    • '> 跳到原选区结尾

选区内替换

  • 在选择好文本范围后,可以在选区范围内控制查找替换

    • 也就是说把:'<,'>作为range来使用
  • :'<,'>s/shiyanlou/oeasy/g

    • 范围内批量替换subtitute
  • :'<,'>s/shiyanlou/oeasy/gc

    • 范围内批量替换并需要确认confirm
  • :'<,'>g/^.*drwxwr.*$/d

    • 范围内有drwxwr的直接删除delete

合并多行

  • 可以用J把这好多行合并成1
  • 可以查询帮助:h v_J 可视模式下的J的作用
  • 除了行可视化之外,字符可视化也可以J将多行合成一行
  • 简单说就是把回车换行删除掉

总结

  • 这次我们了解到行可视模式

    • 行可视模式 V
    • 也可配合各种motion
    • o切换首尾
  • 选区的开头和结尾是mark标记

    • 开头是 '<
    • 结尾是 '>
  • 可以在选区内进行替换和删除

    • :'<,'>s/shiyanlou/oeasy/g 范围内批量替换
    • :'<,'>s/shiyanlou/oeasy/gc 范围内批量替换待确认
    • :'<,'>g/^.*drwxwr.*$/d 范围内有drwxwr的直接删除
    • 选中了之后可以进行d、c、y等操作
    • 可以用"a使用指定寄存器
  • 可以合并多行

    • 用J把这好多行合并成1
  • 这次是可视化模式
  • 那么可视化模式又是什么意思呢?
  • 下次再说

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

[Gitee地址] (overmind1980/oeasyvim)

[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 Vim_Linux - 蓝桥云课)

oeasy教您玩转vim - 57 - # 行可视化的更多相关文章

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

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

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

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

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

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

  4. oeasy教您玩转linux010203显示logo

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

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

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

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

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

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

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

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

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

  9. oeasy教您玩转linux010107那啥在哪 whereis

    回忆上次内容 上次讲了 ls 的参数 (arguement) 和选项 (option) 的设置. 现在我们要制作这样一个列表:

随机推荐

  1. 在PHP中使用SPL库中的对象方法进行XML与数组的转换

    虽说现在很多的服务提供商都会提供 JSON 接口供我们使用,但是,还是有不少的服务依然必须使用 XML 作为接口格式,这就需要我们来对 XML 格式的数据进行解析转换.而 PHP 中并没有像 json ...

  2. 关于当前PHP脚本运行时系统信息相关函数

    我们的 PHP 在执行的时候,其实可以获取到非常多的当前系统相关的信息.就像很多开源的 CMS 一般会在安装的时候来检测一些环境信息一样,这些信息都是可以方便地动态获取的. 脚本文件运行时的系统用户相 ...

  3. xmind使用技巧

    xmind看似每个人都会使用,但是掌握一些小技巧,能够有效提升工作效率. 多行复制粘贴 在xmind中选中多行,复制然后可以直接粘贴到excel.word当中. 在excel.word选中多行,复制然 ...

  4. 鸿蒙内核源码分析(CPU篇) | 整个内核就是一个死循环 | 祝新的一年牛气冲天 ! | v32.02

    百篇博客系列篇.本篇为: v32.xx 鸿蒙内核源码分析(CPU篇) | 整个内核就是一个死循环 | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度 ...

  5. 新入手服务器不会玩?抢占式实例服务器教程,从零搭建tomcat超简流程

    新入手服务器不会玩?抢占式实例服务器教程,从零搭建tomcat超简流程 相信很多新人入手Linux服务器后,一脸无奈,这黑框框究竟能干啥?忽觉巨亏血亏不是? 这里面门道可不是你想象中的那么点,简则服务 ...

  6. mac上通过git推送时忽略node_modules文件夹

    node_modules出现改动一般不需要通过git推送,如果不忽略node_modules每次安装新的包会出现几千条新变动,并没有必要推送 1.通过终端进入项目根目录 创建 .gitignore 文 ...

  7. C# .NET Core 3.1中使用 MongoDB.Driver 更新嵌套数组元素和关联的一些坑

    C# .NET Core 3.1中使用 MongoDB.Driver 更新数组元素和关联的一些坑 前言: 由于工作的原因,使用的数据库由原来的 关系型数据库 MySQL.SQL Server 变成了 ...

  8. C语言日记① 初识C

    概念 c语言是一种计算机语言 也就是人与计算机打交道的语言 在早期,因为计算机使用的二进制 所以早期写代码都是科学家来写的使用对应的功能二进制代码 需要用到手册,所以开发不方便 在后来,人们发明了汇编 ...

  9. IDEA Web渲染插件开发(二)— 自定义JsDialog

    <IDEA Web渲染插件开发(一)>中,我们了解到了如何编写一款用于显示网页的插件,所需要的核心知识点就是IDEA插件开发和JCEF,在本文中,我们将继续插件的开发,为该插件的JS Di ...

  10. IDEA Web渲染插件开发(一)— 使用JCEF

    目前网上已经有了很多关于IDEA(IntelliJ平台)的插件开发教程了,本人觉得简书上这位作者秋水畏寒的关于插件开发的文章很不错,在我进行插件开发的过程中指导了我很多.但是综合下来看,在IDEA上加 ...