在vim中,我使用Ctrl-n在插入模式下完成字的填充。如果有多個可能的匹配項,我可以使用箭頭鍵從中選擇一個可能的匹配項。使用'j'和'k'導航的vim字完成
但是,我不想使用箭頭鍵;我想用'j'和'k'鍵。但是當我輸入'j'或'k'時,它會插入字母,而不是在下拉菜單中上下移動。有沒有一種方法可以配置vim以我想要的方式執行此操作?
在vim中,我使用Ctrl-n在插入模式下完成字的填充。如果有多個可能的匹配項,我可以使用箭頭鍵從中選擇一個可能的匹配項。使用'j'和'k'導航的vim字完成
但是,我不想使用箭頭鍵;我想用'j'和'k'鍵。但是當我輸入'j'或'k'時,它會插入字母,而不是在下拉菜單中上下移動。有沒有一種方法可以配置vim以我想要的方式執行此操作?
見:h
popupmenu-keys
。
沒有專門設置映射在彈出菜單子模式,但你可以做一個有條件的插入模式的映射:
inoremap <expr> j pumvisible() ? "\<C-N>" : "j"
inoremap <expr> k pumvisible() ? "\<C-P>" : "k"
這使得j
/k
導航彈出菜單像<C-N>
/<C-P>
,而它是可見的。
附錄:如果你希望能夠在控制,以存放在您鍵入j
和k
,你可以使用分別<C-J>
和<C-K>
,取代它們。 (請參閱mwcz對此答案的評論。)
使用此方法時可能遇到的一個問題是,他/她可能希望在調用完成菜單後繼續鍵入,並且他/她希望鍵入的字母是'j'或'k'。很高興知道未來會出現什麼樣的後果。 – tinifni 2010-10-25 16:45:58
@tinifni可以使用'
由於您已經按下了Ctrl,我發現使用'C-j'和'C-k'來瀏覽列表很方便。它不會干擾打開列表時繼續打字: 'inoremap
我不知道如何用j和k做到這一點。你處於插入模式,他們不工作。
但是,我有另一種方式適合你,按Ctrl +ñ工作一樣的標籤,你可以使用移 - 標籤下井名單和標籤上去。這比使用箭頭鍵更容易。但不如j和k好。
或者你也可以只使用按Ctrl +ñ和按Ctrl +P
並且'CTRL-Y'接受,'CTRL-E'丟棄。 – Benoit 2010-10-25 16:31:33
SuperTab(http://www.vim.org/scripts/script.php?script_id=1643)可能會對您有所幫助。安裝完成後,您可以使用Tab和Tab-Shift來瀏覽彈出式菜單。
看到這個文檔也:http://vim.wikia.com/wiki/Omni_completion_popup_menu
簡言之到這樣一個問題:幾年後,我的VIM的工作流程是這樣的,我不會做這種定製了。我寧願讓vim成爲我可以在任何地方使用的編輯器,包括隨機的Linux服務器和其他人的機器。爲此,我只使用默認的鍵綁定。對於更多自定義的東西,我使用emacs。 – kerkeslager 2016-06-16 20:23:34