Maoyl's blog Maoyl's blog
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

maoyln

日日行,不怕千万里
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 简介

  • vim

    • 起步
    • 相关命令的知识
    • 认识vim语法
    • 删改重做命令提升效率
    • 认识可视化模式
    • 什么是文本对象
    • 快速移动
      • 给我滚!
      • 光标位置
      • 小练习
    • 掌握搜索命令
    • vim-easymotion
    • 数字与'.'的威力
    • 多文件跳转
    • vim-surround
    • 字符替换和多文本选中
    • 大小写、注释与提示
    • 窗口管理大法
    • 快速删除一个函数
    • vim的宏操作
    • 调用vscode命令
  • vscode

  • 《Vim》学习笔记
  • vim
maoyln
2022-06-11
目录

快速移动

# 快如闪电:快速移动s

前面几天学到了光标一些的“快捷”移动方式,如 hjkl b w e 等等,但是在真实的使用中,他们的快捷确实是需要打上双引号,因为等我们打开动则上千行的 屎山 代码时,这些移动光标的方法就捉襟见肘了;这一节,我们就要祭出 vim 的一个大杀器,让我们的光标移动飞速起来!

# 给我滚!

先来看看让页面滚动起来的指令:

  • 向下滚动一屏:ctrl + b
  • 向上滚动一屏:ctrl + f
  • 向下滚动半屏:ctrl + d
  • 向上滚动半屏:ctrl + u
  • 向下滚动一行:ctrl + e , 光标不会移动,只是屏幕滚动
  • 向上滚动一行:ctrl + y , 光标不会移动,只是屏幕滚动

这时候,我们就可以愉快地在 屎山 代码中快速移动了。可是问题又来了,这几个指令动则半个屏幕移动,要不就一行行移,有没有在这些范围内的更适合平时使用的呢?

答案是:没有。

但不代表不可以,这时我们就要用老办法 -- 修改配置来达成需求了。

打开 vscode setting.json,在 vim.visualModeKeyBindings 和 vim.normalModeKeyBindings 中添加如下设置:


  "vim.normalModeKeyBindings": [
      ...
      {
          "before": ["J"],
          "after": ["5", "j"]
      },
      {
          "before": ["K"],
          "after": ["5", "k"]
      }
      ...
  ],
  "vim.visualModeKeyBindings": [
      ...
      {
          "before": ["J"],
          "after": ["5", "j"]
      },
      {
          "before": ["K"],
          "after": ["5", "k"]
      }
      ...
  ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

这里的配置是把 J K 映射成每次跳五行的效果,当然,如果你觉得不合适也可以根据自己的需求更改。配置完后,就可以在方便地跳转了。

# 光标位置

有时候在我们的光标移动到要编辑的行时,可能刚好这一行在屏幕的顶部或底部,或者需要跳转到文件的头或尾,这里有更快捷的指令:

  • 将当前行置于屏幕中央:zz
  • 将当前行置于屏幕顶部:zt,t 即 top
  • 将当前行置于屏幕底部:zb,b 即 bottom
  • 跳到文件首:gg
  • 跳到文件尾:G

如果是以上所有的命令都无法让你快速跳到要去的行,这时候就有一个终极方法:

  • 行数 + gg / G:跳到指定行;只要你知道行数,就可以准确无误地跳到那一行,在调试或查看报错位置时特别有用。比如跳到 1024 行,输入 1024 gg,这时候再搭配 zz,让当前行置于屏幕中间,然后就可以愉快 coding 了~

# 小练习

这一天没有练习,去屎山里跳动吧!go and get it!

编辑 (opens new window)
#Vim
上次更新: 2025/04/18, 01:42:12
什么是文本对象
掌握搜索命令

← 什么是文本对象 掌握搜索命令→

最近更新
01
GSAP动画库——如何高效写动画
04-17
02
自适应方案PxToRem
09-10
03
性能优化-requestAnimationFrame
08-10
更多文章>
Theme by Vdoing | Copyright © 2019-2025 备案号:京ICP备19058102号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式