块可视化编辑

回忆上节课内容

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

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

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

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

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

切换模式

  • 块可视模式 ctrl+v

    • 左下角-- 可视 块 --
    • 然后配合motion
  • 首尾切换

    • o切换首尾
    • 这个块可以有四个顶点
    • O横向切换
    • 四个顶点都可以切换到
  • 选择好了之后就可以把选区y下来

    • 然后找到一个空白的地方,p
    • 我们发现这个块是按照方块的方式粘贴的

添加序号

  • 用ctrl+v

    • 在行首部分,选择4行1列的方块
    • 输入I1.<esc>
    • 在行首插入41.
  • ctrl+v选中下面的31
  • g之后ctrl+a
  • 行号变成 1234

查找帮助

  • 可以:h v_g_ctrl-a查看手册
  • 意思是查找 visual 模式下的g_ctrl-a

再练一次

  • 使用命令 :2,5normal I001. esc
  • ctrl+v选中3-5行的开头字符
  • g之后ctrl+a

  • 到7之后自动跳到10
  • 这个怎么回事?

数字格式问题

  • :set nrformat?

    • nr 数字 number
    • formats 格式

  • 原来他把007当作了8进制数octal
  • :set nrformats -octal

    • -octal 去掉8进制格式
  • 再试试

切换首尾

  • o

    • 切换首尾
    • 控制选择范围
  • O

    • 在同一行中切换选择点
    • 控制选择范围

回忆外部命令

#先安装两个软件 fortune和boxes 在<linux>教程那部分有介绍
sudo apt install fortune boxes
#使用fortune生成谚语
fortune -l
#把谚语通过管道送入boxes
fortune -l | boxes -d cat
#进入vi
:r !fortune -l | boxes -d cat

  • banner 实在太宽了
  • 我想把它变得窄一点

范围控制

  • 先用块选择的方式,把里面选中
  • 删除,并放到寄存器a中

  • 在最底下粘贴出来

  • :set textwidth=50
  • gq21G
  • "ayG

  • 然后调整画框
  • 把内容合理地放上去
  • 开心

批量改名的练习

  • 首先找到文件

  • 选中前面的块并d删除

  • I在前面插入mv "

  • 同样方法,给后面也加上"
  • 把名字块复制并粘贴

可视块内的批量替换

  • 把后面的块选中
  • 并完成针对于块儿内的替换'<,'>
  • :'<,'>s/\%Vg/graphic/g

    • '<,'>表示范围
    • s表示substitute
    • \%V表示在块内
    • g/graphic表示替换内容
    • 最后的g表示可重复

清理空格

  • 下面需要把多余的空格清空一下
  • :'<,'>s/desktop\s*"/desktop"/g

  • :wq保存退出

    运行

  • 替换成功

  • 在本次的例子中并不明显
  • 在给90多个mp4文件改名的过程中(把空格换成逗号)
  • 发现真的很方便

再练一个

  • 基础来源于 ls -l > renames.sh

总结

  • 今天我们了解到块可视模式

    -ctrl+v

    • 左下角-- 可视 块 --
    • 然后配合motion
    • o切换首尾
    • 这个块可以有四个顶点
    • O横向切换
  • 可以在选区内进行编辑和替换

    • 可以直接d、c、y
    • 或者D、C、Y
    • 也可以直接编辑

      • :'<,'>d
      • :'<,'>s/shiyanlou/oeasy/g 范围内批量替换
  • 可以在块·可视化模式下替换

    • :'<,'>s/\%Vg/graphic/g
    • '<,'>表示范围
    • s表示substitute
    • \%V表示在块内
  • 文本编辑终于告一段落,下次干点什么?
  • 下次再说

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

[Gitee地址] (overmind1980/oeasyvim)

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

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

  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. 安装node-sass失败原因及解决办法汇总

    node-sass 安装过程 npm 拉下 node-sass包: 根据node版本和node-sass版本拉取对应的binding.node编译器,原因是sass的编译语言比较特殊,需要下载对应版本 ...

  2. Android 13 - Media框架 - 异步消息机制

    关注公众号免费阅读全文,进入音视频开发技术分享群! b7693967-317e-4c46-96d3-d40d9d87e382 由于网上已经有许多优秀的博文讲解了Android的异步消息机制(ALoop ...

  3. 利用 Helm 在各类 Kubernetes 中安装 Rainbond

    利用 Helm 安装 Rainbond 好雨科技技术团队一直致力于让用户更方便的安装 Rainbond 这款产品. 不久前,我们刚刚推出了在一个容器中部署 Rainbond 的快速安装方式,这种方式覆 ...

  4. cmake之find_library使用问题

    附上工程源码 demo工程 PS:这个工程用于导出库 CMakeLists.txt cmake_minimum_required(VERSION 3.5) project(demo LANGUAGES ...

  5. 算法金 | 突破最强算法模型!!学会随机森林,你也能发表高水平SCI

    大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 就在去年下半年,如果你在 Google Scholar 上以 "Random ...

  6. 三维API sheder 基础

    这个shader 是靠三维数学 影响 二维像素 导致像素颜色改变 它是每个像素走一遍脚本算法 写的时候注意 语言格式 写错了 shader脚本是不能用的,根本就不好使这个 可以用区域 用xyz y为0 ...

  7. 前台往后台传id

    js页面var stuid;$(function () { var request = { QueryString : function(val) { var uri = window.locatio ...

  8. redis锁定商品解决并发售卖问题 RedisUtil工具类

    redis锁定商品解决并发售卖问题 RedisUtil工具类 redis数据类型介绍: //伪代码,基本思路 //1.出redis,每次在选定商品之后,先检查redis是否已经锁定该商品,避免超卖.S ...

  9. idea为什么提示:Duplicated code fragment (**lines long)

    idea为什么提示:Duplicated code fragment (**lines long) 原因是有相同的代码块在类里,可以把这部分代码封装成一个方法,提高代码可读性.

  10. es语法 rest api 模拟根据歌手,歌名,歌词来搜索demo

    #创建索引songs_v1 PUT { - "acknowledged": true, "shards_acknowledged": true, "i ...