为啥要这样做,还是因为
两个的tab
键冲突了.要改.
在apc.vim
里面改成这样:
if s:meets_keyword(context)
imap <buffer><tab> <c-n>
imap <buffer><f7> <c-p>
silent! call feedkeys("\<c-n>", 'n')
#当有满足条件时,加上映射
接着:
function! s:complete_done()
"这里可搞其他的,如保存最常用的补全字典
silent! iunmap<buffer><tab>
silent! iunmap<buffer><f7>
silent! iunmap<buffer><cr>
"imap <tab> <Plug>snipMateNextOrTrigger#没用
然后取消映射.还要加上一句:
let context = s:get_context()
if(snipMate#CanBeTriggered())
return 0
endif
if s:meets_keyword(context)
#这个方面太慢,见下面
这样来过滤满足snipmate
的tab
键.
"imap<silent><buffer><expr> <tab>
" \ pumvisible()? "\<c-n>" :
" \ <SID>check_back_space() ? "\<tab>" : "\<c-n>"
""这里重新映射为<tab>
"inoremap <silent><buffer><expr> <f7>
" \ pumvisible()? "\<c-p>" : "\<s-tab>"
"原来是s-tab.
上面几句取消掉.提高速度:
let g:apc_key_ignore = get(g:, 'apc_key_ignore', ['`','无构','可串','对(','当1']) " ignore keywords
这样,把自己的片段都写在这里.