2009-11-06 4 views
16

Estoy tratando de utilizar snipMate y pydiction en vim juntos - sin embargo, tanto el uso de la clave <tab> para llevar a cabo su genio-auto-realización-fragmento-renderizado -buena-que-yo-tan-deseo.Con VIM, utilizar tanto snipMate y pydiction juntos (compartir la clave <tab>?)

Cuando se instala pydiction, snipMate deja de funcionar. Supongo que es porque no pueden poseer la clave <tab>. ¿Cómo puedo hacer que trabajen juntos?

No me importaría asignar una de ellas a una clave diferente, pero no estoy muy seguro de cómo hacer esto ... (¿quizás la piratería de la clave <ctrl-n> imita el autocompletado de vim?).

Aquí es el .vimrc relevante:

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' 

Respuesta

15

Bueno, esto es desde el archivo de ayuda 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

Perfecto - gracias! Quizás en toda mi búsqueda debería haber mirado más de cerca los documentos de ayuda. Je. – thornomad

+3

Ya no cierto, ahora la documentación especifica que se puede volver a asignar con 'IMAP snipMateNextOrTrigger' y' SMAP snipMateNextOrTrigger' – TKrugg

+1

1 @TKrugg Ver mis dotfiles se comprometen con las reasignaciones. https://github.com/simeonwillbanks/dotfiles/commit/660b0505c82157656e15d47cd43108d2d39409db – simeonwillbanks

7

Como alternativa, puede editar y cambiar ~/.vim/after/ftplugin/python_pydiction.vim Tab a otra cosa:

" 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: Esto funciona para mí. –

4

Creo que la w Es posible que cambiar la clave de activación haya cambiado desde que se recibió la respuesta de_karel en 2009, pero se encuentra en el mismo directorio, a saber, 'after/plugin/snipMate.vim'. Lo encontré en el archivo de ayuda también:

*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>' 
Cuestiones relacionadas