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切换首尾
- 控制选择范围

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

可视化
- 明确点儿可以叫做选择范围可视化
像这样很容易就知道自己所选择的范围
- 然后就可以进行相关操作了
- 做什么操作呢?
相关操作
在可视化模式也可以进行编辑操作
- 相当于对于选好的内容进行操作
选好了之后,
d
- 删除所选文本
c
- 修改所选文本
- 删除选中的文本
- 然后输入想要的内容
r
- 替换所选文本
- 将选中的文本替换成单个字符
I
- 在所选文本前插入
A
- 在所选文本后插入
gu
- 所选区域转为小写
gU
- 所选区域转为大写
g~
- 所选区域大小写互调
>
- 所选区域对应的行向右缩进一个
shiftwidth
- 所选区域对应的行向右缩进一个
<
- 所选区域对应的行向左缩进一个
shiftwidth
- 所选区域对应的行向左缩进一个
- 这个和我们常用的相似
操作细节
大小写不同
- 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地址] (GitHub - overmind1980/oeasyvim: 这是oeasy制作的的一套关于vim的教程 可以在 https://www.lanqiao.cn/teacher/courses/2840 做实验 邀请码FJWYIMGB 本教程从0基础开始,到精通vim配置,和高级命令。希望能让vim是你的开发更高效。)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 Vim_Linux - 蓝桥云课)
oeasy教您玩转vim - 56 - # 字符可视化模式的更多相关文章
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转linux010103我在那pwd
我在哪pwd 回忆上次内容 我们上次列出了关于发行版详细信息文件的位置 ls /etc/*release 其中 ls是命令的名字,意味着list列表 /是整个文件系统的根root /etc是根目录下的 ...
随机推荐
- [CSP-J2020] 优秀的拆分
[CSP-J2020] 优秀的拆分 难度:普及- 题目描述 一般来说,一个正整数可以拆分成若干个正整数的和. 例如,1=1,10=1+2+3+4 等.对于正整数 n 的一种特定拆分,我们称它为&quo ...
- 开源的物联网技术平台(Thingsboard)
1 总体说明 1.1 产品概述 1.1.1 Thingsboard作用 1.置备并控制设备. 2.采集设备数据并进行数据可视化. 3.分析设备数据,触发告警. 4.将数据传输到另一个系统. 5 ...
- navicat导出DDL语句
工作中有的时候需要将某个库中的表.视图.函数.存储过程等创建语句导出,又不需要表中的数据. 方法一:需要拷贝的创建语句条数不多,可以选择直接拷贝DDL语句 方法二:使用Navicat的备份功能
- 『GoLang』数组与切片
数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构):这种类型可以是任意的原始类型例如整型.字符串或者自定义类型. 数组长度必须是一个常量表达式,并且必须是一个非负 ...
- 双击tomcat8w.exe出现指定的服务未安装
进入tomcat bin 目录下 打开cmd 输入命令 service.bat install 进行服务安装. 双击tomcat8w.exe 就可以打开了.
- mysql的一次意外
打开navcat连接本地mysql数据库的时候说mysql服务无法连接,切换到cmd用命令行来启动报错,发生系统错误5,查看百度,需用管理员权限运行, 用管理员运行依旧不好使 C:\WINDOWS\s ...
- Kubernetes-Service介绍(一)-基本概念
前言 本篇是Kubernetes第八篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战.Pod篇暂时应该还缺少两篇,等Service和存储相关内容介绍以后,补充剩下的两篇,有状态的Pod会涉及 ...
- Django+Nginx+Uwsgi(全网最全步骤工作原理流程与部署历程)
一.必要前提 1.1 准备知识 django 一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. uWSGI 一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网 ...
- python3 拼接字符串方法
python3.x拼接字符串一般有以下几种方法: 1. 直接通过(+)操作符拼接 1 2 s = 'Hello'+' '+'World'+'!' print(s) 输出结果:Hello World! ...
- 如何做好 NodeJS 框架选型?
作为一个有一定工作经验的工程师,工作中经常会遇到技术选型的问题.比如当我们在工作中需要使用到 NodeJS 时,第一个要解决的问题就是如何选择一个合适的框架. 不同的框架有不同的特点,如果我们仅仅从框 ...