2012-01-11 20 views
5

Ho aggiunto alcuni semplici comandi inoremap al mio .vimrc per facilitare il completamento di parentesi e parentesi, ma voglio solo che vengano applicati ai file php.Vim inoremap per tipi di file specifici

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

Come impostare questi comandi affinché siano attivi solo quando si modifica un file .php?

+0

possibile duplicato di [vim: vorrebbe che accenda le impostazioni solo per determinati tipi di file] (http://stackoverflow.com/questions/469564/vim-would-like-it-to-turn-settings-on -solo-per-certi-tipi-file) – gpojd

risposta

7

Uso autocmd FileType:

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

Ci può essere un modo migliore per farlo, ma questo dovrebbe funzionare:

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

metterli in un questo file

~/.vim/ftplugin/php.vim 
12

È necessità di fare 2 cose:

  • creare un mapping locale a un buffer specifico utilizzando l'opzione <buffer> per inoremap.
  • carica i mapping solo per un tipo di file specifico.

questo può essere fatto tramite un autocomando nel vostro .vimrc in questo modo:

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

L'altra opzione modo è attraverso la creazione di un plugin tipo di file. (Vedi :h ftplugin per maggiori dettagli)

Un esempio semplice è fare creare un file denominato, ~/.vim/after/ftplugin/php.vim e posizionare le mappature dentro in questo modo:

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

io personalmente propendere per l'approccio ftplugin ma avendo un tutto in il tuo file .vimrc può essere carino.

+0

Grande, solo un autore su cinque sa ' '. – ZyX

+0

È interessante notare che le opzioni sembrano darmi un errore di caratteri E488 Trailing – CamelBlues

+0

@CamelBlues: Puoi mostrarmi il comando che si interrompe? Di solito ottieni errori E488 quando hai un '' 'non necessario, ad es. 'autocmd FileType php: inoremap (() i' –

1

aggiungerli al file di ftplugin nella directory dopo:

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

More info in this answer.

Modifica: Questo file, e forse anche la directory, non sarà lì per impostazione predefinita. Potrebbe essere necessario farlo se non lo vedi lì.

Problemi correlati