王清欢Randy 王清欢Randy
首页
  • 编程语言

    • C/C++ 学习笔记
    • Golang 学习笔记
  • 算法分析

    • LeetCode 刷题笔记
  • 操作系统

    • Linux 基础
    • Vim 实用技巧
    • Shell 脚本编程
    • GDB 学习笔记
  • 开发工具

    • Git 学习笔记
  • 分布式理论

    • 共识算法
    • 分布式事务
  • 数据库内核

    • PostgreSQL
    • Postgres-XL
  • hidb
  • pgproxy
  • 实用技巧
  • 学习方法
  • 资源分享
GitHub (opens new window)
首页
  • 编程语言

    • C/C++ 学习笔记
    • Golang 学习笔记
  • 算法分析

    • LeetCode 刷题笔记
  • 操作系统

    • Linux 基础
    • Vim 实用技巧
    • Shell 脚本编程
    • GDB 学习笔记
  • 开发工具

    • Git 学习笔记
  • 分布式理论

    • 共识算法
    • 分布式事务
  • 数据库内核

    • PostgreSQL
    • Postgres-XL
  • hidb
  • pgproxy
  • 实用技巧
  • 学习方法
  • 资源分享
GitHub (opens new window)
  • Linux 基础

    • 基本Linux命令
    • 文件与目录操作
    • 进程与线程
    • 线程同步与进程通信
    • Linux 文件权限
    • Linux 命令行快捷键
  • Vim 实用技巧

    • Vim常用技巧
    • Vim解决问题的方式
    • Vim普通模式
    • Vim插入模式
    • Vim可视模式
      • 可视模式
        • 技巧20 深入理解可视模式
        • 技巧21 选择高亮选区
        • 技巧22 重复对高亮选区进行操作
        • 技巧23 操作符命令优先级高于可视命令
        • 技巧24-26 运用面向列块的可视模式
    • Vim命令行模式
  • Shell 脚本编程

    • 目录
  • GDB学习笔记

    • GDB基础调试
    • GDB调试Coredump
  • Linux操作系统编程
  • Vim 实用技巧
王清欢
2023-04-30
目录

Vim可视模式

# 可视模式

# 技巧20 深入理解可视模式

“选区”操作

​ Vim的可视模式允许我们在自己选中的一个文本区域上进行操作,普通模式中的许多操作命令都可以在可视模式中生效,但是也存在一些操作上的细微变化。插入模式中有操作符+动作命令完成一个操作,可视模式中也是通过操作符确定操作类别,但是不是通过动作命令确定作用范围,而是与普通模式相反的逻辑,它先有了被选中的区域然后在使用操作符命令完成操作。

使用示例

​ 例如,当需要将文本中的单词March替换成April时,一般情况下,我们会考虑使用退格键删除单词再输入新内容,或者鼠标双击选中单词再用退格键删除再添加内容。这一问题在可视模式下可以选择鼠标双击的处理逻辑,把光标移动到目标单词后,使用v命令进入可视模式,然后使用iw命令选中目标单词,然后使用c命令删除选中内容并切换到插入模式,接着就可以输入April完成修改操作了。

# 技巧21 选择高亮选区

可视模式的三种子模式

​ 可视模式有面向字符、面向行、面想列块三种子模式,它们可以分别用于处理不同类型的文本。从普通模式切换到这三种子模式的命令如下表所示。

命令 用途
v 进入面向字符的可视模式
V 进入面向行的可视模式
Ctrl v 进入面向列块的可视模式
gv 返回到上次的高亮选区
o 切换高亮选区的活动端

​ 其中的gv和o命令是可视模式的操作命令,gv命令撤销当前的高亮选区回退到上一个高亮选区,而o命令则是在构造高亮选区时可以更加灵活的控制活动端,当发现选区划分错误时,使用o命令改变活动端然后重新调整选区边界。

# 技巧22 重复对高亮选区进行操作

针对选区重复操作

​ 在可视模式中,每当执行以此操作命令之后,会被切换到普通模式下,如果想再次对该选区进行操作,避免重复划定选区可以使用gv命令直接回到相同范围的高亮选区。有些应用场景也可以使用·命令完成重复操作,例如想将一个文本块缩进多次,在可视模式下选择文本块之后使用>命令缩进一次文本块,之后可以直接使用·命令完成重复缩进任务。

# 技巧23 操作符命令优先级高于可视命令

能用操作符命令不用可视命令

​ 和数字前缀的次数命令与.命令之间的抉择一样,能用操作符命令完成的任务不用可视命令完成,因为在一键操作,一键移动的范式之中,操作符命令更易实践。可视命令中高亮选区的固定可能在一些操作中缺乏灵活性,导致在使用.命令重复操作时作用范围不能够灵活改变,而由操作符+动作命令完成的操作在作用范围上具有一定灵活性,更具优势。

# 技巧24-26 运用面向列块的可视模式

用面向列块的可视模式编辑表格数据

​ 例如,想要在三行内容中间为他们添加|符号,构成一个表格。先使用Ctrl v命令进入面向列块的可视模式,然后使用j/k命令划分列块选区,最后使用r|命令为三行内容都添加|符号。

one       1
tow       2
three     3

修改列文本

​ 例如,想要修改同列块中的相同内容,可以直接使用Ctrl v命令进入列块可视模式,然后使用h/l命令选择文本,再用j/k命令选择列块,然后使用c命令替换内容并输入新的内容,所有行的内容都会被同时修改。

在长短不一的高亮块后添加文本

​ 例如,多行长短不一的代码都需要添加;,前面已经使用过A;然后使用j.一键移动,一键操作完成内容添加工作。这一工作使用列块可视模式可以更加方便的完成,使用Ctrl v进入可视模式,然后使用j/h以及移动至行尾$命令选中所有行末端文本,然后使用A;命令完成文本添加工作。

上次更新: 2023/11/19, 12:55:48
Vim插入模式
Vim命令行模式

← Vim插入模式 Vim命令行模式→

Theme by Vdoing | Copyright © 2023-2024 Wang Qinghuan | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式