更高效的移动-想去哪就去哪

2022-08-11  本文已影响0人  sweetBoy_9126

vim-easymotion

在 vscode 中开启配置

 "vim.easymotion": true, // 开启配置
"vim.leader": "<Space>", // vim 里自身的 leader 键是 \,我们将它映射为空格

1. 基于单词跳转

<leader><leader>w

作用:跳到当前光标所在位置后面区域某个单词的开头
光标所在下方区域根据每个单词高亮定位,我们只需要按对应的高亮的单词字母就可以移动到对应的位置
**注意红色字母跳转是单字母跳转,黄色的是组合跳转,比如红色只需要按 k,黄色需要按 ;h **

注意他高亮的字母都是自动生成的并不是你本身的

<leader><leader>e

作用:跳转到光标所在位置后面区域某个单词的结尾

<leader><leader>b

作用:跳转到当前光标前面区域某个单词的开头

<leader><leader>ge

作用:跳转到当前光标前面区域某个单词的结尾

2. 基于行跳转

<leader><leader>j

作用:移动到当前光标后面区域的某一行

<leader><leader>k

作用:移动到当前光标区域前面的某一行

3. 跳转到单词开头和结尾以及_和#

<leader><leader>l

作用:移动到当前光标后面区域的某个单词开头或者结尾位置

<leader><leader>h

作用:移动到当前光标前面区域的某个单词开头或结尾位置

4. 跳转到光标任意区域的任意单词的任意位置

<leader><leader><leader>j

vim-sneak

配置

"vim.sneak": true,

s + 两个搜索字符

作用:定位到当前光标区域后面匹配搜索字符的第一个搜索字符的位置,如果想继续查找下一个用 ;上一个用,

S + 两个搜索字符

作用:定位到当前光标区域前面匹配搜索字符的第一个搜索字符的位置

和 / 与 ?的对比

功能一样,但是减少了一次回车确认的按键

与 f 对比

f 是单行,它是全局

改键

我们不希望 s 按键替换掉我们原来的 s 的功能
我们希望将 现在 的 f 的按键功能改成 s 的,再把 s 改成原来的

  1. 首先我们需要再 normal 模式下修改
    因为我们要把 f 替换成 s,又要把 s 替换成新的,所以这里存在一个递归问题,我们不希望它递归,只希望发现现在是 f 直接替换成 s,然后就停下来,所以我们需要在 vim.normalModeKeyBindingsNonRecursive 下修改
    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["f"],
            "after": ["s"]
        },
        {
            "before": ["F"],
            "after": ["S"]
        },
        {
            "before": ["s"],
            "after": ["c", "l"]
        },
        {
            "before": ["S"],
            "after": ["^", "C"]
        }
    ],
  1. 修改可视化模式下的
    可视化模式下不支持大写的 S,所以不需要映射
    "vim.visualModeKeyBindingsNonRecursive": [
        {
            "before": ["f"],
            "after": ["s"]
        }
    ],
  1. 修改 operatorPending 模式
    默认情况下 使用 operator 配合 sneak 是需要用 z 来使用的,所以我们可以将 z 也映射成 f
    "vim.operatorPendingModeKeyBindingsNonRecursive": [
        {
            "before": ["f"],
            "after": ["z"]
        },
        {
            "before": ["F"],
            "after": ["Z"]
        }
    ],

总结

什么情况下使用 f 什么情况下用 leader
你想定位到距离你当前光标位置比较近的字符的时候用 f,否则用 leader,因为如果用 f 得多按几次 ;

上一篇 下一篇

猜你喜欢

热点阅读