2012-01-11 37 views
5

He agregado algunos comandos simples inoremap a mi .vimrc para ayudar con la finalización de paréntesis y corchetes, pero solo quiero que se apliquen a los archivos php.Vim inoremap para tipos de archivos específicos

inoremap (()<Esc>i 
inoremap { {<CR>}<Esc>ko 
inoremap <? <?php ?><Esc><Left>i 

¿Cómo configuro estos comandos para que estén activos solo cuando estoy editando un archivo .php?

+0

posible duplicado de [vim: le gustaría activar las configuraciones solo para ciertos tipos de archivos] (http://stackoverflow.com/questions/469564/vim-would-like-it-to-turn-settings-on -only-for-certain-file-types) – gpojd

Respuesta

7

Uso autocmd FileType:

autocmd FileType php,c,java inoremap (()<Esc>i 
0

Puede haber una mejor manera de hacerlo, pero esto debería funcionar:

autocmd FileType php call Inoremaps() 
fu! Inoremaps() 
    inoremap ... 
endfu 
5

los pusieron en un este archivo

~/.vim/ftplugin/php.vim 
12

Usted necesita hacer 2 cosas:

  • crea una asignación local a un búfer específico utilizando la opción <buffer> para inoremap.
  • carga las asignaciones solo para un tipo de archivo específico.

Esto se puede hacer a través de un AutoCommand en su .vimrc así:

autocmd FileType php inoremap <buffer> (()<Esc>i 

La otra opción manera es mediante la creación de un plugin tipo de archivo. (Ver :h ftplugin para más detalles)

Un ejemplo sencillo es hacer crear un archivo llamado, ~/.vim/after/ftplugin/php.vim y coloque sus asignaciones en el interior de esta manera:

inoremap <buffer> (()<Esc>i 
inoremap <buffer> { {<CR>}<Esc>ko 
inoremap <buffer> <? <?php ?><Esc><Left>i 

personalmente me inclino más hacia el enfoque ftplugin pero tener un todo en su archivo .vimrc puede ser agradable.

+0

Genial, solo un autor de cada cinco conoce ''. – ZyX

+0

Curiosamente, las opciones parecen darme un E488 Error de caracteres finales – CamelBlues

+0

@CamelBlues: ¿Puede mostrarme el comando que se rompe? Por lo general, obtienes errores E488 cuando tienes un ':' innecesario, p. 'autocmd FileType php: inoremap (() i' –

1

añadirlos al archivo en el directorio ftplugin después:

~/.vim/after/ftplugin/php.vim 

Más información en this answer.

Editar: Este archivo, y tal vez incluso el directorio, no estará allí por defecto. Puede que tengas que hacerlo si no lo ves allí.

Cuestiones relacionadas