Vim 块可视化详解

回忆上节课内容🤔

切换模式

  • 块可视模式 ctrl+v
    • 左下角-- 可视 块 --
    • 然后配合motion
  • 首尾切换
    • o切换首尾
    • 这个块可以有四个顶点
    • O横向切换
    • 四个顶点都可以切换到
  • 选择好了之后就可以把选区y下来
    • 然后找到一个空白的地方,p
    • 我们发现这个块是按照方块的方式粘贴的

图片描述

添加序号

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

图片描述

  • 这在markdown中可以快速制作有序列表

查找帮助

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

图片描述

再练一次

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

图片描述

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

数字格式问题

  • :set nrformat?
    • 查看一下数字格式,其中
      • nr 数字 number
      • formats 格式

图片描述

  • 原来他把007当作了8进制数octal
  • :set nrformats-=octal
    • -octal 去掉8进制格式
  • :set nrformat?
  • 再试试

图片描述

切换首尾

  • 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横向切换
  • 可以在选区内进行编辑和替换
    • 可以直接dcy
    • 或者DCY
    • 也可以直接编辑
      • :'<,'>d
      • :'<,'>s/shiyanlou/oeasy/g 范围内批量替换
  • 可以在块·可视化模式下替换
    • :'<,'>s/\%Vg/graphic/g
    • '<,'>表示范围
    • s表示substitute
    • \%V表示在块内
  • 文本编辑终于告一段落,下次干点什么?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

深入浅出区块链 -〔陈浩〕

说透中台 -〔王健〕

乔新亮的CTO成长复盘 -〔乔新亮〕

说透芯片 -〔邵巍〕

Redis源码剖析与实战 -〔蒋德钧〕

中间件核心技术与实战 -〔丁威〕

商业思维案例笔记 -〔曹雄峰〕

快速上手C++数据结构与算法 -〔王健伟〕

结构沟通力 -〔李忠秋〕