oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑
回忆上节课内容🤔
我们学习了关于模式匹配中使用参数
单个参数
:%s/<h2>\(.*\)</h2>/ - \1/g
多个参数
:%s/<img src=\"\(.*\)\" title=\"\(.*\)\" \/>/[!\2]\1
非贪婪匹配
:%s/<a href=\"\(.\{-\})\">\(.\{-\}\)<\/a>/[\2]\1/g
我们这回会遇到一种新的模式
什么模式呢?
我们先回忆一下已经了解的模式
三种模式
我们先回顾一下以前学过的模式
正常模式
插入模式
替换模式
命令行模式
今天的新模式是
可视化模式
其实可视化对应三种可视化
字符可视化v
行可视化V
块可视化ctrl+v

字符可视模式
v进入
还是可以用
{motion}
移动光标从开始位置到目前光标位置文本高亮显示
相当于把选择范围高亮显示
在左下角显示
可视
意味着进入了
可视-字符模式
可以用o切换首尾
控制选择范围

为什么要有可视化模式?
具体选择
为什么要有可视化模式?
因为很多时候移动工具不直观

可视化
明确点儿可以叫做选择范围可视化
像这样很容易就知道自己所选择的范围
然后就可以进行相关操作了
做什么操作呢?
相关操作
在可视化模式也可以进行编辑操作
相当于对于选好的内容进行操作
选好了之后,
所选区域对应的行向左缩进一个
shiftwidth
所选区域对应的行向右缩进一个
shiftwidth
所选区域大小写互调
所选区域转为大写
所选区域转为小写
在所选文本后插入
在所选文本前插入
替换所选文本
将选中的文本替换成单个字符
修改所选文本
删除选中的文本
然后输入想要的内容
删除所选文本
d
c
r
I
A
gu
gU
g~
>
<
这个和我们常用的相似
操作细节
大小写不同
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 <>) - 一个尖括号包围的标签,含标签- 相当于ati<
- inner <> block - 一个尖括号包围的标签,不含标签- 相当于ita[
- 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 - 反引号括号包含的块,不含反引号
用行命令操作选区
选好选区后
:
左下角会出现:'<,'>
就是从选区开头,到选区结尾
'< 选区开头
'> 选区结尾
然后我们摁下d回车
就把选区范围内都删除了
我们可以
:h '<
查看相应手册

总结
今天我们了解到可视模式,其实可视化对应三种子模式
字符可视模式v
行可视模式V
块可视模式ctrl+v
我们先来了解字符可视化模式
快捷键v
可配合各种
motion
o切换首尾
字符可视化就是把选择范围可视化
快速操作
d
c
y
选中了之后可以进行
可以用"a使用指定寄存器
可以用
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)