2013-08-01 96 views
1

最近當我嘗試使用ctrl + n或ctrl + p自動完成時,當有多個選擇時,點擊輸入按鈕將插入一個新行,而不是選擇我想要的選擇。輸入按鈕插入新行而不是選擇替代

這並沒有發生過,也許是因爲我安裝了太多的插件,導致了衝突。檢查所有這些插件的鏡頭並找出源頭將是非常可怕的。因此,將內置的自動完成映射到其他一些鍵可能是一個解決方案,但我不知道該怎麼做。

這不是一個大問題,但真的使編碼不「光滑」。以前有人遇到過這種情況,你是如何處理這種情況的。

+1

做一個':詳細地圖'看''是否映射到任何東西。 – FDinoff

+0

找不到映射 – GeauxEric

+2

對於插入模式,這將是':verbose imap '。 –

回答

2

簡答:您不需要使用<cr>來接受比賽。

從VIM摘錄幫助:h popupmenu-keys

The behavior of the <Enter> key depends on the state you are in: 
first state:  Use the text as it is and insert a line break. 
second state:  Insert the currently selected match. 
third state:  Use the text as it is and insert a line break. 

In other words: If you used the cursor keys to select another entry in the 
list of matches then the <Enter> key inserts that match. If you typed 
something else then <Enter> inserts a line break. 

我會建議你使用<c-n><c-p>切換到正確的映射,然後繼續與你的打字。通常這意味着我輸入一個空格或其他標點符號並關閉菜單。我從不使用<cr>來選擇一個菜單項。但是,如果你真的想接受匹配使用<c-y>。對所選菜單項認爲「是」。

+0

我不知道可以用來選擇菜單項。無論如何,這解決了偶爾的煩惱。非常感謝你! – GeauxEric

0

我剛剛修復了由vim-autoclose插件引起的非常類似的問題,將其替換爲Auto-Pairs插件。我懷疑你的確是同樣的罪魁禍首,但如果你爲你的插件使用病原體,它實際上並不是太糟糕 - 只需將~/.vim/bundle(或它們在任何地方)的插件中的一半插入不同的文件夾,重新啓動vim和測試自動完成。如果它按預期工作,那麼您知道已經移出的插件之一是有責任的,因此您可以再次執行相同的操作,直到您將其縮小爲止。

在此之前,您還可以嘗試運行vim -u NONE,這會忽略您的.vimrc文件 - 這可能是您偷偷在自己的內容中,這是排除它的最快方法。無論如何,祝你好運。這花了我大約十分鐘的時間,在大概一年偶爾的煩惱之後,我希望我早點抽出時間。

相關問題