2014-09-19 52 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