2012-08-20 2 views
3

Моя проблема в том, что завершение завершения для SnipMate не работает, когда я в файле vimwiki. Я тестирую, набрав APACHE<Tab> в режиме вставки, но я не получаю фрагмент, как я, когда я нахожусь, скажем, .vimrc.Получить Vimwiki, работающий со SnipMate (плагины vim)

И хотя i_<Tab> не работает в файле vmwikie, i_<C-R><Tab> делает. Я получаю список доступных фрагментов. Странный.

Чтобы сделать это незнакомец (ну, мне по крайней мере), вот частичный выход :imap в файле vimwiki:

i <Tab>  * <C-G>u<C-R>=snipMate#TriggerSnippet()<CR> 
i <C-R><Tab> * <C-R>=snipMate#ShowAvailableSnips()<CR> 

Я думаю, что это правильно, и в других файлах, где <Tab> завершение делает работу , отображения одинаковы.

oh, и в случае, если вы думаете предложить разместить let g:vimwiki_table_auto_fmt = 0 в моем .vimrc, как предложено в http://code.google.com/p/vimwiki/wiki/ChangeLog, я попробовал, и это не решает мою проблему. Это единственное предложение, которое я нашел в моем поиске, поэтому я здесь.

Я не знаю, сколько мой .vimrc вы хотите, так что я просто хочу, чтобы дать вам те, которые я думаю, актуальны держать этот вопрос коротко:

" Vundle: The plugin manager for vim.           
    set runtimepath+=~/.vim/bundle/vundle/         
    call vundle#rc()               
    Bundle 'gmarik/vundle'             
" SnipMate: TextMate snippets for vim.          
    Bundle "MarcWeber/vim-addon-mw-utils"          
    Bundle "tomtom/tlib_vim"             
    Bundle "honza/snipmate-snippets"           
    Bundle "garbas/vim-snipmate"            
" Vimwiki: A personal wiki for vim.           
    Bundle 'vim-scripts/vimwiki'            
    let g:vimwiki_hl_headers = 1            
    let g:vimwiki_hl_cb_checked = 1           
    let g:vimwiki_folding = 1             
    let g:vimwiki_fold_lists = 1            
    let s:vimwiki = {}              
    let s:vimwiki.path    = '~/Vimwiki/wiki'       
    let s:vimwiki.path_html  = '~/Vimwiki/html'       
    let s:vimwiki.ext    = '.md'         
    let s:vimwiki.syntax   = 'markdown'        
    let s:vimwiki.maxhi   = 1          
    let s:vimwiki.diary_rel_path = 'Journal/'        
    let s:vimwiki.diary_index  = 'index'         
    let s:vimwiki.diary_header  = 'Journal'        
    let s:vimwiki.diary_sort  = 'asc'         
    let g:vimwiki_list = [s:vimwiki] 

Благодарности

Редактировать:

Я не знаю, почему я забыл об этом, написав выше. Вывод :imap, приведенный выше, является неполным. Он также показывает:

i <Tab>  *@vimwiki#tbl#kbd_tab() 

Независимо от значения g:vimwiki_table_auto_fmt. Вероятно, это источник моей проблемы .. и если так, я бы как-то избавился от нее от .vimrc.

ответ

10

@ на выходе :imap показывает, что Vimwiki определяет локальное расположение буфера <Tab>, которое переопределяет глобальный snipMate. A

:iunmap <buffer> <Tab> 

следует исправить это. Вы можете поместить эту команду в ~/.vim/after/ftplugin/vimwiki.vim, чтобы сделать ее постоянной. Но, по-видимому Vimwiki позволяет настройки:

" Table mappings 
if g:vimwiki_table_mappings 
    inoremap <expr> <buffer> <Tab> vimwiki#tbl#kbd_tab() 
    inoremap <expr> <buffer> <S-Tab> vimwiki#tbl#kbd_shift_tab() 
endif 

Так, :let g:vimwiki_table_mappings = 0 в вашем .vimrc должен работать тоже.

Смежные вопросы