在我之前的<<vim之補全1>>和<<vim之補全2>>中曾經成功的將vim的supertab和UltiSnips共用一個tab鍵, 這樣做的優點的兩種補全的觸發都變得比較方便, 存在的問題有如下幾點:
1. supertab不能使用最新版本, 必須使用vim.org中出現的2.0版.
2. UltiSnips雖然可以和supertab正常的共用的tab鍵, 但由於兩個插件的共同作用導致tab鍵在正常的supertab(保持默認的<ctrl+p>模式)觸發后是上選功能但在其他補全方式中卻神奇的變成的下選功能. 重點是shift+tab鍵也變成的下選功能.
3. 兩者共用的tab鍵有時候還是會出現相互誤用的問題.
綜合上面的問題, 現在決定兩二者的tab鍵功能模式取消, 保持supertab的tab鍵功能. 將UltiSnips的快捷鍵從tab中徹底分離.
通過閱讀UltiSnips的幫助文檔最終實現了這個想法, 具體配置和說明如下:
"UltiSnips
"插入模式下直接通過ii鍵來觸發UltiSnips的代碼塊補全
let g:UltiSnipsExpandTrigger="ii"
"iI彈出UltiSnips的可用列表,不常用的, 所以這里設置成了特殊的iI映射
let g:UltiSnipsListSnippets="iI"
"II跳轉的到下一個代碼塊可編輯區
let g:UltiSnipsJumpForwardTrigger="II"
"OO跳轉到上一個代碼塊可編輯區
let g:UltiSnipsJumpBackwardTrigger="OO"
之所以用上面的這些特殊的雙鍵映射是因為"ii"是我現在剩下不多的無沖突,易操作,不容易影響正常輸入的王牌雙鍵映射了. 這些鍵集中在i和o鍵, 易於記憶和操作
更多的原因請參見<<vim之補全1>>和<<vim之補全2>>.
通過上面的設置之后, UltiSnips對tab鍵就徹底沒有影響了, 我們可以正常使用最新版的supertab. 同時tab的所有功能都跟隨supertab設置.