| show | step |
|---|---|
| version | 1.0 |
| enable_checker | true |
- 上次我们了解到行可视模式
- 行可视模式 V
- 也可配合各种
motion - o切换首尾
- 选区的开头和结尾是
mark标记- 开头是 '<
- 结尾是 '>
- 可以在选区内进行替换和删除
:'<,'>s/shiyanlou/oeasy/g范围内批量替换:'<,'>s/shiyanlou/oeasy/gc范围内批量替换待确认:'<,'>g/^.*drwxwr.*$/d范围内有drwxwr的直接删除- 选中了之后可以进行d、c、y等操作
- 可以用"a使用指定寄存器
- 可以合并多行
- 用J把这好多行合并成
1行
- 用J把这好多行合并成
- 这次是
行可视化模式 - 那么
块可视化模式又是什么意思呢?🤔
- 块可视模式 ctrl+v
- 左下角
-- 可视 块 -- - 然后配合
motion
- 左下角
- 首尾切换
- o切换首尾
- 这个块可以有四个顶点
- O横向切换
- 四个顶点都可以切换到
- 选择好了之后就可以把选区y下来
- 然后找到一个空白的地方,p
- 我们发现这个块是按照方块的方式粘贴的
- 用ctrl+v
- 在行首部分,选择4行1列的方块
- 输入
I1.<esc> - 在行首插入
4个1.
- ctrl+v选中下面的
3个1 - 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=50gq21G"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表示在块内
- 文本编辑终于告一段落
- 这个可视化块儿模式不来自于vi
- 而是来自于他的克隆vim
- vim是如何发展的呢?🤔
- 下次再说 👋