可视化编辑

回忆上节课内容

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

    • 字符可视模式 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 - 蓝桥云课)

最新文章

  1. centos7.2下编译安装&amp;&amp;使用-git代码库
  2. zabbix3.0 微信告警
  3. Unity实现刺客信条灯光的思路探究
  4. 【BZOJ 3083】遥远的国度
  5. jenkins忘记管理员登陆密码的补救措施
  6. HDU 3518 Boring counting(后缀数组,字符处理)
  7. Maven默认周期与插件
  8. C++ delete operator做了什么事
  9. HttpWebRequest中的SendChunked
  10. 关闭窗口(window.close)
  11. UIScrollView代理方法
  12. 再谈.net的堆和栈---.NET Memory Management Basics
  13. Outlook 2013 日历/任务本地备份与还原
  14. ref、out参数
  15. luogu P5287 [HNOI2019]JOJO
  16. 转载:实现MATLAB2016a和M文件关联
  17. HDU 1028(数字拆分 分治)
  18. [cnblog新闻]历史性时刻:云硬件支出首次高于传统硬件
  19. PC端、移动端的页面适配及兼容处理
  20. 关于Unity中Mesh网格的详解

热门文章

  1. [原创]OpenEuler20.03安装配置PostgreSQL13.4详细图文版
  2. Gitee自动化部署python脚本
  3. String(char[] value, boolean share) {
  4. PHP的SPL扩展库(一)数据结构
  5. 用SpringBoot实现策略模式
  6. 【C++ Primer Plus】编程练习答案——第9章
  7. MD5加密算法的实现方式
  8. Python技法2:函数参数的进阶用法
  9. 从零入门 Serverless | Serverless 应用如何管理日志 &amp; 持久化数据
  10. 华为在HDC2021发布全新HMS Core 6 宣布跨OS能力开放