可视化编辑
回忆上节课内容🤔
- 我们学习了关于模式匹配中使用参数
- 单个参数
:%s/<h2>\(.*\)</h2>/ - \1/g
- 多个参数
:%s/<img src=\"\(.*\)\" title=\"\(.*\)\" \/>/[!\2]\1
- 非贪婪匹配
:%s/<a rel="nofollow" href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g
- 我们这回会遇到一种新的模式
- 什么模式呢?
- 我们先回忆一下已经了解的模式
三种模式
- 我们先回顾一下以前学过的模式
- 正常模式
- 插入模式
- 替换模式
- 命令行模式
- 今天的新模式是
可视化模式
- 其实可视化对应三种可视化
- 字符可视化 <kbd>v</kbd>
- 行可视化 <kbd>V</kbd>
- 块可视化<kbd>ctrl</kbd>+<kbd>v</kbd>
字符可视模式
- <kbd>v</kbd>进入
- 还是可以用
{motion}
移动光标 - 从开始位置到目前光标位置文本高亮显示
- 相当于把选择范围高亮显示
- 还是可以用
- 在左下角显示
可视
- 意味着进入了
可视-字符模式
- 意味着进入了
- 可以用<kbd>o</kbd>切换首尾
- 控制选择范围
- 为什么要有可视化模式?
具体选择
- 为什么要有可视化模式?
- 因为很多时候移动工具不直观
- 可视化
- 明确点儿可以叫做选择范围可视化
- 像这样很容易就知道自己所选择的范围
- 然后就可以进行相关操作了
- 做什么操作呢?
相关操作
- 在可视化模式也可以进行编辑操作
- 相当于对于选好的内容进行操作
- 选好了之后,
- <kbd>d</kbd>
- 删除所选文本
- <kbd>c</kbd>
- 修改所选文本
- 删除选中的文本
- 然后输入想要的内容
- <kbd>r</kbd>
- 替换所选文本
- 将选中的文本替换成单个字符
- <kbd>I</kbd>
- 在所选文本前插入
- <kbd>A</kbd>
- 在所选文本后插入
- <kbd>g</kbd><kbd>u</kbd>
- 所选区域转为小写
- <kbd>g</kbd><kbd>U</kbd>
- 所选区域转为大写
- <kbd>g</kbd><kbd>~</kbd>
- 所选区域大小写互调
- <kbd>></kbd>
- 所选区域对应的行向右缩进一个
shiftwidth
- 所选区域对应的行向右缩进一个
- <kbd><</kbd>
- 所选区域对应的行向左缩进一个
shiftwidth
- 所选区域对应的行向左缩进一个
- 这个和我们常用的相似
- <kbd>d</kbd>
操作细节
- 大小写不同
- d只删除选中的字符
- 而D删除选中字符所在行的所有字符,包含结尾的换行符号
- c 和 C 、 y 和 Y 同理
- 可以在前面添加
"a
指定寄存器a
快速选择文字块
- vaw可以进入字符可视模式,并选中单词
- vaW
- a WORD (with white space)
- 包含空格的一个WORD
- iW
- inner WORD
- 不包含空格的WORD
- as
- a sentence (with white space)
- 包含空格一个句子
- is
- inner sentence
- 不包含空格一个句子
- ap
- a paragraph (with white space)
- 包含空格一个段落
- ip
- inner paragraph
- 一个段落
各种括号引起的文字块
- ab
- a () block (with parenthesis)
- 一个小括号包围的块,含括号
- ib
- inner () block
- 不包含括号的一个块
- aB
- a {} block (with braces)
- 一个大括号包围的块,含括号
- iB
- inner {} block
- 一个大括号包围的块
- at
- a <tag> </tag> block (with tags)
- 一个标签包围的块,含标签
- it
- inner <tag> </tag> block
- 一个标签包围的块,不含标签
- a<
- a <> block (with <>)
- 一个尖括号包围的标签,含标签
- 相当于at
- i<
- inner <> block
- 一个尖括号包围的标签,不含标签
- 相当于it
- a[
- a [] block (with [])
- 中括号包含的块,含中括号
- i[
- inner [] block
- 中括号包含的块,不含中括号
还有各种引用文字块
- a"
- a double quoted string (with quotes)
- 双引号括号包含的块,含双引号
- i"
- inner double quoted string
- 双引号括号包含的块,不含双引号
- a'
- a single quoted string (with quotes)
- 单引号括号包含的块,含单引号
- i'
- inner simple quoted string
- 单引号括号包含的块,不含单引号
- a`
- a string in backticks (with backticks)
- 反引号括号包含的块,不含反引号
- i`
- inner string in backticks
- 反引号括号包含的块,不含反引号
用行命令操作选区
- 选好选区后
- <kbd>:</kbd>
- 左下角会出现:'<,'>
- 就是从选区开头,到选区结尾
- '< 选区开头
- '> 选区结尾
- 然后我们摁下<kbd>d</kbd>回车
- 就把选区范围内都删除了
- 我们可以
:h '<
查看相应手册
总结
- 今天我们了解到可视模式,其实可视化对应三种子模式
- 字符可视模式 <kbd>v</kbd>
- 行可视模式 <kbd>V</kbd>
- 块可视模式<kbd>ctrl</kbd>+<kbd>v</kbd>
- 我们先来了解字符可视化模式
- 快捷键 <kbd>v</kbd>
- 可配合各种
motion
- <kbd>o</kbd>切换首尾
- 字符可视化就是把选择范围可视化
- 快速操作
- 选中了之后可以进行
- <kbd>d</kbd>
- <kbd>c</kbd>
- <kbd>y</kbd>
- 可以用<kbd>"</kbd><kbd>a</kbd>使用指定寄存器
- 选中了之后可以进行
- 可以用
i
和a
快速选择范围- w 小词 W 大词
- ()[] {} 各种括号
- t 标签,编写网页的时候很有用
- s 句子 p 段落
- b 小括号,这个编写程序的时候很有用
- B 大括号,编写程序的时候也很有用
- " ' `引号内
- 还可以在命令行下对选区范围内字符进行操作
:'<,'>
- 这次是字符可视化模式,那么行可视化模式是什么意思呢?🤔
- 下次再说 👋
[Github地址] (https://github.com/overmind1980/oeasyvim) [Gitee地址] (https://gitee.com/overmind1980/oeasyvim) [蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)