2014-09-19 57 views
0
插件

我试图重新映射在VIM对于同一个密钥运行的EasyMotion快捷,比我在Emacs使用方法:Shift + Enter如何变化的快捷方式在Vim的

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

运行此vim的显示出比预警警报我错过了一些括号,我尝试(easymotion-prefix)too..but这也不适用

我写在我的.vimrc里面,我不知道我是否可以这样做,或者我需要写直接在插件中,我是否需要删除以前的键盘映射? !或者改变原来的文件easymotion,谢谢.....

+1

easymotion-prefix不是函数。所有用户定义的函数都以大写字母开头。 (另请阅读README,答案在重要注意事项中......) – FDinoff 2014-09-19 01:59:38

回答

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> 

不也行

一般

一般情况下,它可能是更容易做到在帮助文件或插件文件的Word搜索为<Plug><Leader><Leader>

另一位候选人是maplocalleadervim-orgmode让我感到沮丧,因为我覆盖了我使用的领导者密钥,所以我有let maplocalleader='\'以减轻其他插件可能共有的情况。

+1

Vim有很棒的文档,例如':h'。大多数优秀的插件也是如此。这包括EasyMotion。请参阅':h easymotion-leader-key'这个确切问题的答案。请参阅':h easymotion' – 2014-09-19 02:53:24