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-替换字符
    • 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-12
目录

vim-10-认识数字&点的威力

# 任务点

# 数字

语法:

  • 数字 + operation + 动作(范围)
  • operation + 数字 + 动作(范围)

比如删除三个单词:3dw 或者 d3w

好处:保持了连贯的撤销历史记录

坏处:需要有思考的时间

# 点(.)

功能:重复上一次的修改(做了更新),比如新增,删除,修改

normal 模式只记录最后一次的修改;而离开 insert 模式之前的所有按键操作都记录

由于 . 在 normal 模式只记录最后一次的修改,而我们的修改操作达到相同的结果会有不同的按键命令,如果和 . 配合使用,可能要寻找出最适合的那个

比如光标在单词尾部删除这个单词的操作,我们现在有三种方式实现:

  • bde/bdw: 先移动到单词开头,再删除到单词结尾
  • dbx: 先删除到单词结尾(除最后一个字符),再删除最后一个字符
  • diw: 利用文本对象内部(i)选中单词,删除

先看 bde/dbw,这种最后一次的修改是 de/dw,而没有 b,因为 b 是移动并没有修改,所以 . 命令无法删除单词

再看 dbx,这其实是两次修改:db 和 x,所以 . 只会重复最后一次的 x 命令,也无法删除单词

最后看 diw,这就是一次修改的命令,所以 . 是可以删除单词的

综上,我们可以知道,这三种方式只有 diw 可以和 . 配合使用

所以我们以后要想和 . 配合使用,需要看看是否是一次修改命令

核心:一键移动,一键操作

比如给每行尾加分号

如果我们先执行 La;,以后在每行尾加分号的命令就是:j(一键移动), .(一键操作)

但其实 La; 这个命令有问题,. 重复的是 a;,因为 L 是移动,这样当有的行比初始行长时,分号并不是加在行尾的,我们需要先执行 L,再执行 .,这样就是两键操作了

所以我们修改成 A;,这样就是一键操作了

再比如手动多次查找替换

我们先用 / 搜索到要替换的字符,使用 cw + 替换的字符 完成替换操作,以后的替换操作就是:n (一键移动)查找字符,.(一键操作)执行替换操作

最后:能够重复就不要用数字,用 . 代替

# 社群讨论

问个问题:使用点操作时,后面不能有修改操作,要不点就变成这个修改命令了,那有什么办法让点继续原来的操作,不记录以后的修改操作,等我点命令都执行完,再回到正常记录的状态

点命令做不到 用宏

那还得继续学啦


我感觉看视频演示,应该是最后一次按键操作记录吧?

上一次,最后一次其实是一个意思,主要是只重复上一次的操作记录,移动啥的不执行

嗯嗯,我懂了,崔哥说的全部指的是那种组合键的全部,

对,组合键是修改的话会重复,如果包含移动,不执行移动

其实看移动怎么定义,视频里面那个在行尾加分号,用了大 A,看着移动了,不过不算是“移动”

移动且进入 insert 模式,并且修改了,这算一次修改操作

倒不是不记录移动,是只记录插入模式的操作,不记录正常模式的移动


刚刚试了一下 ysiw" 这样的操作也是可以用点的 不太理解

因为没涉及移动 是一次完整的操作,整个操作的结果就是给光标所在当前单词添加双引号嘛,点能重复很合理;就是单纯的做了更新所以可以用点重复

就是重复单次更新的完整命令喽

嗯嗯

编辑 (opens new window)
#Vim
上次更新: 5/27/2023, 1:02:05 PM
vim-09-更高效的移动 - 想去哪里就去哪里
vim-11-掌握多文件之间的跳转

← vim-09-更高效的移动 - 想去哪里就去哪里 vim-11-掌握多文件之间的跳转→

最近更新
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式