Henry Henry
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)

Henry

小学生中的前端大佬
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)
  • 说明
  • Vim

    • 环境准备
    • vim normal 模式中文输入法切换问题
    • vim-01-存活下来
    • vim-02-掌握行相关的命令
    • vim-03-掌握 vim 的语法
    • vim-04-更有效率的处理单字符&undo&redo
    • vim-复习 -1
    • vim-05-掌握可视化模式
    • vim-06-文本对象
    • vim-07-在单文件中移动的更快
    • vim-08-掌握搜索命令
    • vim-复习 -2
    • vim-09-更高效的移动 - 想去哪里就去哪里
    • vim-10-认识数字&点的威力
    • vim-11-掌握多文件之间的跳转
    • vim-12-处理包裹字符的符号
    • vim-复习 -3
    • vim-13-替换字符
      • 任务点
        • 替换命令:substitute
        • 多选操作:gb
      • 社群讨论
    • vim-14-掌握悬浮显示&大小写&注释
    • vim-15-掌握窗口的管理
    • vim-16-删除函数
    • vim-复习 -4
    • vim-17-掌握宏
    • vim-18-调用 vscode 的命令
    • vim-复习 -5
  • VSCode

  • Chrome

  • iTerm

  • mac

  • Obsidian

  • lazygit

  • 学习双拼
  • Vim 技巧

  • 键盘侠
  • Vim
Henry
2022-06-16
目录

vim-13-替换字符

# 任务点

# 替换命令:substitute

公式::[range]s[ubstitute]/{pattern}/{string}/[flags]

公式中 [] 内是可选的,{} 内是必填的

range: 表示范围;% 表示替换全文;number1,number2 表示替换 number1 行到 number2 行;$ 表示替换到文件尾部,可以和 number 配合,比如 number,$ 或 $,number;也可以使用可视化模式选择范围

s[ubstitute]: 表示替换命令,可以简写为 s,全称为 substitute

pattern: 表示被替换的字符,可以输入正则表达式

string: 表示替换的字符

flags: 取值有两个:g 表示全局替换,如果不加 g,默认只替换每行第一个匹配到的字符;c 会弹出对话框,询问是否替换,输入 y 表示替换当前字符,n 表示不替换当前字符,a 表示替换所有,q 表示退出,l 表示替换当前字符并退出。可以多个 flag 一起使用,比如 gc

可以通过配置 "vim.gdefault": true 默认开启 :substitute 的 g 模式

输入命令按回车后即执行替换命令,如果切换到 normal 模式,不执行替换命令,类似预览,可以先预览看看是不是我们要替换的结果,如果是就按回车,否则按 Esc

& 在当前行重复上次的替换

小知识:当使用可视化模式选择多行又退出可视化后(选择执行完其他命令后 Esc),'< 会跳转到刚才可视化选择的起始位置,'> 会跳转到刚才可视化选择的结束位置

# 多选操作:gb

在一个单词上使用 gb 会选中当前单词,再按 gb 会往下查找相同的单词,如果查找不到还会再从文件开头往下查找;查找是全字匹配并区分大小写的

然后我们就可以批量操作了,比如 d 批量删除,c 批量删除并插入...

# 社群讨论

今天的替换命令,为什么我感觉还是 vscode 自带的会更爽

哪个爽你就用哪个,这个不用局限于 vim 里面

我觉得学键盘侠就是为了开拓“技术视野”的,最终用啥取决于自己,看看哪个合适

如果说键盘侠最深层次的意义的话,就是感受到每天进步一点点的快乐

这个对 除了这个点,还能体会到和自己的惰性抗拒后获得的快乐,如何走出舒适区,还有就是不会急功近利,不会像以前学习那样,坚持一周看不到进步就算了,因为你已经体会到有的东西就是要长期抗争才能获得的

主要是有些知识点他的反馈周期比较长,有的人坚持不到看到成果的那一天就放弃了,但是快捷键的练习不是,正向反馈来的非常的快

学这个可以降低未来学其他东西的门槛

键盘侠,目标明确,每日有个小反馈,有截止时间。

对 像我就是自己培养的学习习惯 只要没事 不累 我就会天天学习 不过要是早一点体会到 就不会走这么多弯路了,但是是不是走点弯路也有好处呢,总会走弯路的 靠自己有时候更有底气

必须得自己经历过苦 不然都是大道理 听不进去

我觉得,里程碑式的学习方式,对于信心的建立真的很重要。回顾这一年,你会看到留下的足迹是清晰可见的。大家不是没有学习,只是没有留下积累。

我的观点是 要找到一个闭环,就是有时候你会发现 你学了一个东西 然后过两天忘记了,你又会去学一遍,然后不仅是重复劳动,还让人没有坚持的欲望,这个过程必须是前进的,忘了的话要么是看自己写了笔记,或者去快速回顾一下,不能什么都没记录又去重学一遍

键盘侠这形式是符合科学的学习方式的,比只看视频课好多了,看视频课不容易主动输出思考

看视频课要想主动思考只有用户自己去驱动,因为这一块没有一个通用的学习准则,比如要想学好真就是要先自己理解然后再去看视频,但是这个过程是非常耗时的,特别对于小白来说,理解一个东西有可能先要去理解很多别的东西做基础。而如果直接跟着老师的思路走,就很容易局限甚至放弃思考,最终达不到举一反三的效果

是滴 所以视频课这边没有很好的创新


请问 gb 的多选操作能跳过吗?或者说 visual 模式下能不连续选择吗

应该不能吧


gb 这个多选替换有点好用啊

这个挺像 gd 的,不对,是像*和#

不一样的,*#只是移动位置 适合找定义的地方

*和#不是定义,gd 是定义

但都属于不需要输入匹配字符,直接一当前光标单词来进行匹配的

编辑 (opens new window)
#Vim
上次更新: 5/27/2023, 1:02:05 PM
vim-复习 -3
vim-14-掌握悬浮显示&大小写&注释

← vim-复习 -3 vim-14-掌握悬浮显示&大小写&注释→

最近更新
01
version 1.15
07-01
02
version 1.14
06-27
03
version 1.13
06-27
更多文章>
Theme by Vdoing | Copyright © 2017-2023 HenryTSZ | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式