可视化编辑

回忆上节课内容

  • 我们学习了关于模式匹配中使用参数
  • 单个参数

    • :%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 <>)
    - 一个尖括号包围的标签,含标签
    - 相当于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
    - 反引号括号包含的块,不含反引号

用行命令操作选区

  • 选好选区后

    • :
  • 左下角会出现:'<,'>

    • 就是从选区开头,到选区结尾
    • '< 选区开头
    • '> 选区结尾
  • 然后我们摁下d回车

    • 就把选区范围内都删除了
  • 我们可以:h '< 查看相应手册

总结

  • 今天我们了解到可视模式,其实可视化对应三种子模式

    • 字符可视模式 v
    • 行可视模式 V
    • 块可视模式ctrl+v
  • 我们先来了解字符可视化模式

    • 快捷键 v
    • 可配合各种 motion
    • o切换首尾
    • 字符可视化就是把选择范围可视化
  • 快速操作

    • 选中了之后可以进行

      • d
      • c
      • y
    • 可以用"a使用指定寄存器
  • 可以用ia快速选择范围

    • 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 - # 字符可视化模式的更多相关文章

  1. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  2. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  3. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  4. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  5. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转linux010103我在那pwd

    我在哪pwd 回忆上次内容 我们上次列出了关于发行版详细信息文件的位置 ls /etc/*release 其中 ls是命令的名字,意味着list列表 /是整个文件系统的根root /etc是根目录下的 ...

随机推荐

  1. SpringAOP-动态代理,日志注入

    SpringAOP 前言: 1.AOP定义? 用来干啥的? 怎么用?(怎么跑通它的思路) 代理模式 为啥要学代理模式? -- 因为是SpringAop的底层 原有的代码不敢动,一动就是Bug,.所以使 ...

  2. PHP中命名空间是怎样的存在?(二)

    今天带来的依然是命名空间相关的内容,本身命名空间就是PHP中非常重要的一个特性.所以关于它的各种操作和使用还是非常复杂的,光使用方式就有很多种,我们一个一个的来看. 子命名空间 命名空间本身就像目录一 ...

  3. learn git(远程仓库github)

    |由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置: 第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa ...

  4. Jmeter系列(17)- 常用断言之JSON断言

    模块分析 Assert JSON Path exists:需要断言的 JSON 表达式 Additionally assert value:如果要根据值去断言,请勾选 Match as regular ...

  5. P1909 [NOIP2016 普及组] 买铅笔

    如果她选择购买第一种包装,那么她需要购买29份,共计2×29=58支,需要花费的钱为2×29=58. 实际上,P老师会选择购买第三种包装,这样需要买22份.虽然最后买到的铅笔数 量更多了,为30×2= ...

  6. linux 服务器资源 监控工具

    工具一:vmstat(服务端) 一.vmstat选项参数解释 -V:显示vmstat版本信息 -n:只在开始时显示一次各字段名称 -a:显示活跃和非活跃内存 -d:显示各个磁盘相关统计信息 -D:显示 ...

  7. 剑指offer计划27(栈与队列困难)---java

    1.1.题目1 剑指 Offer 59 - I. 滑动窗口的最大值 1.2.解法 解题思路:(来自作者bigbeats) 相当于维护一个最大队列(队头元素最大,向队尾非严格递减) 在未形成窗口前,先构 ...

  8. P6085-[JSOI2013]吃货JYY【状压dp,欧拉回路】

    正题 题目链接:https://www.luogu.com.cn/problem/P6085 题目大意 \(n\)个点的一张无向图,有\(k\)条必走边,\(m\)条其他边,求从\(1\)出发经过必走 ...

  9. Loj#6053-简单的函数【Min25筛】

    正题 题目链接:https://loj.ac/p/6053 题目大意 定义一个积性函数\(f(p^c)=p\ xor\ c\),求\(\sum_{i=1}^nf(i)\) 解题思路 异或这个东西不太好 ...

  10. P7276-送给好友的礼物【dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P7276?contestId=39577 题目大意 \(n\)个点的一棵树,\(k\)个关键点,两个人从根出发分别走 ...