Vim 行可视化详解

回忆上节课内容🤔

切换模式

  • 我们上次从正常模式切换到字符可视化模式用的是小写v
  • 如果想切回来呢?
    • 再摁下一下v
    • 或者esc
    • 或者ctrl+c
  • 这次我们切换到行编辑模式,用大写V
    • 可以看到左下角提示,"--- 可视· ---"
    • 切换过来之后可以快速的使用motion控制结束行的位置
    • 可以使用33G跳转位置 
  • 也可以用o,切换选区首尾字符
  • 选区选好之后可以做操作了

操作方法

图片描述

  • 行可视化模式选择的内容是
  • Vjj可以选中3行
    • V 选中当前行
    • j 加选下面一行
    • j 再加选一行

基本操作

  • 我们选择好了很多行之后怎么办呢?
  • 我们选好选取之后,就可以
    • d
    • c
    • y
  • 这和字符可视化模式一样的
  • 可以使用
    • D
    • C
    • Y
  • 可视化模式,大小写没什么区别
  • 不过对 字符 可视化模式,还是有区别的

使用命令行

  • 用命令行模式
  • 就像字符可视化模式一样
  • 比如我:
  • 左下角会出现:'<,'>就是从选区开头,到选区结尾
    • '< 选区开头
    • '> 选区结尾
  • 然后我们摁下d回车
    • 就把选区范围内都删除了
  • 我们可以:h '< 查看相应手册

图片描述

  • '< 这种形式很像标记啊
  • 就像ma做标记、'a跳转到标记那样
  • 能否看看'<是否也是一个标记

选区标记

  • 做好选区
  • :marks <>查看标记
  • 可以查找到选区的开始和结束标记mark

图片描述

  • 这刚好标记在了选取的开始结束位置
  • 想要恢复选区应该怎么办?

恢复选区

  • 做好了选区
  • 进入了命令行模式
  • ctrl+c 丢失了选区
  • 想要恢复
  • '<v'>
    • '< 跳到原选区开头
    • v 进入字符可视化模式
    • '> 跳到原选区结尾

选区内替换

  • 在选择好文本范围后,可以在选区范围内控制查找替换
    • 也就是说把:'<,'>作为range来使用
  • :'<,'>s/shiyanlou/oeasy/g
    • 范围内批量替换subtitute
  • :'<,'>s/shiyanlou/oeasy/gc
    • 范围内批量替换并需要确认confirm
  • :'<,'>g/^.*drwxwr.*$/d
    • 范围内有drwxwr的直接删除delete

合并多行

  • 可以用J把这好多行合并成1
  • 可以查询帮助:h v_J 可视模式下的J的作用
  • 除了行可视化之外,字符可视化也可以J将多行合成一行
  • 简单说就是把回车换行删除掉

图片描述

总结

  • 这次我们了解到行可视模式
    • 行可视模式 V
    • 也可配合各种motion
    • o切换首尾
  • 选区的开头和结尾是mark标记
    • 开头是 '<
    • 结尾是 '>
  • 可以在选区内进行替换和删除
    • :'<,'>s/shiyanlou/oeasy/g 范围内批量替换
    • :'<,'>s/shiyanlou/oeasy/gc 范围内批量替换待确认
    • :'<,'>g/^.*drwxwr.*$/d 范围内有drwxwr的直接删除
    • 选中了之后可以进行dcy等操作
    • 可以用"a使用指定寄存器
  • 可以合并多行
    • J把这好多行合并成1
  • 这次是可视化模式
  • 那么可视化模式又是什么意思呢?🤔
  • 下次再说 👋

教程来源于Github,感谢overmind1980大佬的无私奉献,致敬!

技术教程推荐

推荐系统三十六式 -〔刑无刀〕

Nginx核心知识150讲 -〔陶辉〕

数据分析实战45讲 -〔陈旸〕

网络编程实战 -〔盛延敏〕

分布式数据库30讲 -〔王磊〕

代码之丑 -〔郑晔〕

流程型组织15讲 -〔蒋伟良〕

陈天 · Rust 编程第一课 -〔陈天〕

后端工程师的高阶面经 -〔邓明〕