1. 概述
  1. vim 的 jumps 相关命令
  1. 背景
  1. vim 使用
  2. 总感觉 mark 有时候不那么友好
  3. 之前碰到的 ctrl + ictrl + o 也不知道是干啥的
  1. 想这些东西和 mark 的跳转, 有没有什么联系
  1. 环境
  1. os
  1. win10 20H2
  1. git-bash
  1. mintty - 3.4.0
  1. 类型
  1. 这是一篇 教程类 的博客

1. 问题: ctrl + o 和 ctrl + i 到底是干什么的

  1. 概述
  1. rt
  1. 问题
  1. 问题: 这两个快捷键的作用
  1. 之前一张 vim 键盘图纸上, 看到过这个东西
  2. 但是自己没有摸清楚规律
  1. 解答
  1. 依据是 jump list

2. jumplist

  1. 概述
  1. jumplist 相关
  1. 准备
  1. 特性支持: +jumplist
  1. 需要
  1. 编译时确认了对 jumplist 的支持
  1. 查看
  1. 命令
# 如果能看到 +jumplist, 那么就是支持这个特性
# 如果没有, 那么需要重新选择 vim, 并安装
> vim --version
  1. jumplist
  1. 概述
  1. 一个对 编辑过程中 特定位置的记录
  2. 可以方便地进行跳转
  1. 特性
  1. 每个 window 都会有一个
  1. vim 的 help 里是这么描述的
  2. 但是我现在也没有很好的理解这个 window 的含义
  1. 命令
# 1. 查看 jumplist
## 进入 命令模式
: jumps

## 结果
### 1. 最多只能存放 100 条
### 2. 从上到下, 记录的顺序, 是 从旧到新
### 3. 每行的内容, 我就不多说了, 大家应该都能看懂
### 4. 记录的内容只要存在, 都跳转过去

# 2. 跳转
## 标准模式
## 跳转到 更新 的 jumplist 项
## 就是往下跳
ctrl + i
## 跳转到 更旧 的 jumplist 项
## 就是往上跳
ctrl + o
  1. 问(题: 这些列表项, 是如)何决定的
  1. 问题
  1. rt
  1. 解答
  1. vim help 里是这么说的
# 总感觉这里面没有说完...
# marks 的跳转
'
`

# 跳转到文档结位
G
gg # 这个是我的补充

# 搜索 与 搜索跳转
/
?
n
N

# 在当前行中, 查找 item
## item 包括 (), [], {}
## 在括号之间, 来回跳转
%

# 跳转: 句子
(
)

# 跳转: 在第一列的 {, } 之间跳转
## 这个我也不太懂, 没法细讲
[[
]]

# 跳转: 短路
{
}

# 替换
:s

# tags
:tag

# 窗口中跳转
## 窗口顶
H 
## 窗口中间
M
## 窗口底部
L

# 在文中搜索 光标词汇, 并跳转
# 自己补充
* ## 向前查找
# ## 向后查找

# marks 系列

ps

  1. ref
  1. vim help
  1. 概述
  1. 命令模式 输入 help 进入
  1. 使用 Vim 的 jump list 看代码
  1. 概述
  1. 讲解了
  1. 后续
  1. changelist
  1. 概述
  1. 记录修改的命令
  1. 问题: 发现有时候 ctrl + o, 多跳几次可能 ctrl + i 就跳不回去, 但是还没发现什么规律...

尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出