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

时间:2014-09-19 01:20:21

标签: vim

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

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

运行此vim显示警告提醒,而不是我错过了一些括号,我也尝试(easymotion-prefix)..但这不起作用

我在.vimrc中写了它,我不知道我是否可以这样做,或者我需要直接在插件中编写,我是否需要删除以前的keymap?或者更改原始文件easymotion,谢谢!.....

1 个答案:

答案 0 :(得分:1)

我做了一些挖掘,这很有用

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

找到这个地方:

README.md

找到它的最简单方法可能是访问plugin's Github page,因为我们可以享受浏览器对降价和来源的解析。该页面将打开该文件夹的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因覆盖我对领导密钥的使用而让我感到沮丧,所以我let maplocalleader='\'来减轻其他插件的共同点。