VIM - jumps 命令

  1. 概述

    1. vim 的 jumps 相关命令
  2. 背景

    1. vim 使用
    2. 总感觉 mark 有时候不那么友好
    3. 之前碰到的 ctrl + ictrl + o 也不知道是干啥的
      1. 想这些东西和 mark 的跳转, 有没有什么联系
  3. 环境

    1. os

      1. win10 20H2
    2. git-bash

      1. mintty - 3.4.0
  4. 类型

    1. 这是一篇 教程类 的博客

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

  1. 概述

    1. rt
  2. 问题

    1. 问题: 这两个快捷键的作用

      1. 之前一张 vim 键盘图纸上, 看到过这个东西
      2. 但是自己没有摸清楚规律
    2. 解答

      1. 依据是 jump list

2. jumplist

  1. 概述

    1. jumplist 相关
  2. 准备

    1. 特性支持: +jumplist
      1. 需要

        1. 编译时确认了对 jumplist 的支持
      2. 查看

        1. 命令

          # 如果能看到 +jumplist, 那么就是支持这个特性
          # 如果没有, 那么需要重新选择 vim, 并安装
          > vim --version
          
  3. jumplist

    1. 概述

      1. 一个对 编辑过程中 特定位置的记录
      2. 可以方便地进行跳转
    2. 特性

      1. 每个 window 都会有一个
        1. vim 的 help 里是这么描述的
        2. 但是我现在也没有很好的理解这个 window 的含义
  4. 命令

    # 1. 查看 jumplist
    ## 进入 命令模式
    : jumps
    
    ## 结果
    ### 1. 最多只能存放 100 条
    ### 2. 从上到下, 记录的顺序, 是 从旧到新
    ### 3. 每行的内容, 我就不多说了, 大家应该都能看懂
    ### 4. 记录的内容只要存在, 都跳转过去
    
    # 2. 跳转
    ## 标准模式
    ## 跳转到 更新 的 jumplist 项
    ## 就是往下跳
    ctrl + i
    ## 跳转到 更旧 的 jumplist 项
    ## 就是往上跳
    ctrl + o
    
  5. 问(题: 这些列表项, 是如)何决定的

    1. 问题

      1. rt
    2. 解答

      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 进入
    2. 使用 Vim 的 jump list 看代码

      1. 概述
        1. 讲解了
  2. 后续

    1. changelist
      1. 概述
        1. 记录修改的命令
上一篇:字节跳动---一面


下一篇:【Codeforces Round #693 (Div. 3) C】Long Jumps