如何更改Vim中插件的快捷方式



我正在尝试重新映射vim中运行easymotion的快捷方式,该快捷方式与我在Emacs中使用的键相同:shift+Enter

 nnoremap <S-Enter> :call easymotion-prefix() <CR>

运行这个vim会显示一个警告警报,而不是我缺少了一些括号,我也尝试了(easymotion前缀)。。但这对都不起作用

我把它写在我的.virc里,我不知道我是否能做到这一点,或者我需要直接在插件里写,我需要删除以前的密钥映射吗?或者更改原始文件easymotion,谢谢!。。。。。

我做了一些挖掘,这对有效

map <S-Enter> <Plug>(easymotion-prefix)

找到这个的地方:

README.md

找到它的最简单方法可能是访问插件的Github页面,因为在这里我们可以享受浏览器对标记和源代码的解析。该页面将打开捆绑包的README.md,您也可以从Vim的~/.vim/bundle/vim-easymotion/目录中读取它。

:help

解决问题的其他明智的地方是:help easymotion.txt,或者如果你没有正确对齐插件的帮助文件,你可以简单地访问vim-easymotion/easymotion.txt。你可以在那里跳来跳去,因为其他部分会把你指向更近的地方,但easymotion-custom-mappings是相关的部分。

plugin/

如果所有其他操作都失败了,您可以签出plugin目录,在这种情况下,我们可以检查vim-easymotion/EasyMotion.vim文件。在那里,我们可以找到一个部分,

" == Default key mapping {{{
if g:EasyMotion_do_mapping == 1
    " Prepare Prefix: {{{
    if exists('g:EasyMotion_leader_key')
        exec 'map ' . g:EasyMotion_leader_key . ' <Plug>(easymotion-prefix)'
    else
        if !hasmapto('<Plug>(easymotion-prefix)')
            map <Leader><Leader> <Plug>(easymotion-prefix)
        endif
    endif
    "}}}

您可以看到,如果!hasmapto('<Plug>(easymotion-prefix)'),它将只使用默认值,这就是的原因

    map <S-Enter> <Plug>(easymotion-prefix)

解决您的问题。

我很好奇为什么

let g:EasyMotion_leader_key <S-Enter>

也不起作用

一般情况下

通常,在<Plug><Leader><Leader>的帮助文件或插件文件中进行单词搜索可能更容易。

另一个候选者是maplocalleadervim-orgmode覆盖了leader密钥的使用,这让我很沮丧,所以我使用let maplocalleader=''来缓解其他插件的常见问题。

最新更新