我正在尝试重新映射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>
的帮助文件或插件文件中进行单词搜索可能更容易。
另一个候选者是maplocalleader
。vim-orgmode
覆盖了leader密钥的使用,这让我很沮丧,所以我使用let maplocalleader=''
来缓解其他插件的常见问题。