2009-11-06 7 views
16

Próbuję użyć snipMate i pydiction w vim razem - jednak zarówno użyć klawisza <tab> wykonywać swój geniusz-autouzupełnianie-urywek-rendering -goodness-that-I-so-desire.vim używać zarówno snipMate i pydiction razem (udostępnić klucz <tab>?)

Po zainstalowaniu pacyfikacji snipMate przestaje działać. Zakładam, że to jest, ponieważ nie mogą jednocześnie posiadać klucza <tab>. Jak mogę je zmobilizować?

Nie miałbym nic przeciwko zamapowaniu jednego z nich na inny klucz, ale nie jestem do końca pewien, jak to zrobić ... (może pydiction do klucza <ctrl-n>, aby naśladować autouzupełnianie vima?).

Oto istotne .vimrc:

filetype indent plugin on 

autocmd FileType python set ft=python.django 
autocmd FileType html set ft=html.django_template 

let g:pydiction_location = '~/.vim/ftplugin/pydiction-1.2/complete-dict' 

Odpowiedz

15

Cóż, to jest z pliku pomocy Snipmate :)

               *snipMate-remap* 
snipMate does not come with a setting to customize the trigger key, but you 
can remap it easily in the two lines it's defined in the 'after' directory 
under 'plugin/snipMate.vim'. For instance, to change the trigger key 
to CTRL-J, just change this: > 

ino <tab> <c-r>=TriggerSnippet()<cr> 
snor <tab> <esc>i<right><c-r>=TriggerSnippet()<cr> 

to this: > 
ino <c-j> <c-r>=TriggerSnippet()<cr> 
snor <c-j> <esc>i<right><c-r>=TriggerSnippet()<cr> 
+0

Idealny - dzięki! Być może podczas wszystkich moich poszukiwań powinienem uważniej przyjrzeć się dokumentom pomocy. Heh. – thornomad

+3

już prawdą, teraz dokumentacja wskazuje, że może to być odwzorowane z 'imap snipMateNextOrTrigger' i' SMAP snipMateNextOrTrigger' – TKrugg

+1

+1 @TKrugg Zobacz moje dotfiles popełnić z remaps. https://github.com/simeonwillbanks/dotfiles/commit/660b0505c82157656e15d47cd43108d2d39409db – simeonwillbanks

7

Alternatywnie, można edytować i zmieniać ~/.vim/after/ftplugin/python_pydiction.vim Tab do czegoś innego:

" Make the Tab key do python code completion: 
inoremap <silent> <buffer> <Tab> 
     \<C-R>=<SID>SetVals()<CR> 
     \<C-R>=<SID>TabComplete('down')<CR> 
     \<C-R>=<SID>RestoreVals()<CR> 

" Make Shift+Tab do python code completion in the reverse direction: 
inoremap <silent> <buffer> <S-Tab> 
     \<C-R>=<SID>SetVals()<CR> 
     \<C-R>=<SID>TabComplete('up')<CR> 
     \<C-R>=<SID>RestoreVals()<CR> 
+0

+1: To działa dla mnie. –

4

Wierzę, że Zmiana klucza spustowego mogła ulec zmianie, ponieważ odpowiedź the_karel została podana w 2009 r., ale znajduje się w tym samym katalogu, a mianowicie "after/plugin/snipMate.vim". Znalazłem go również w pliku pomocy:

*snipMate-trigger* 
snipMate comes with a setting to configure the key that is used to trigger 
snipMate. To configure the key set g:snips_trigger_key to something other than 
<tab>,e.g. <c-space> use: 

let g:snips_trigger_key='<c-space>'