Não consegui encontrar uma solução para este problema, pelo que decidi
nnoremap <leader>js set ft=javascript
Eu também estou curioso para uma solução.
Estou usando o fantástico plug-in NrrwRgn . Eu freqüentemente edito arquivos XML com PHP em seções CDATA, então no buffer reduzido eu recebo isto:
<![CDATA[
$foo='bar';
doSomething($foo);
]]>
Como posso ter a região restrita identificada como PHP quando é PHP e como XML ou outra coisa quando é outra coisa? Observe que, mesmo neste exemplo, ao selecionar a seção do PHP com vit\nr
, as tags CDATA ainda estão lá, portanto, tecnicamente, isso não é um XML bem formado, nem PHP.
Eu não tenho certeza, eu entendo completamente o que você quer. O plugin NrrwRgn deve definir automaticamente o tipo de arquivo da janela reduzida para a do buffer original. Se isso não é o que você deseja, você pode, no entanto, conectar-se ao comando NrrwRgn na criação e fechamento das janelas. Então, aqui está o que você poderia fazer:
Crie um arquivo ~/.vim/after/ftplugin/php.vim
(crie diretórios inexistentes, no Windows, isso seria $VIM/vimfiles/after/ftplugin/php.vim
, onde $ VIM é qualquer diretório que o vim lhe disser, ao emitir :echo $VIM
) e coloque nele:
let g:nrrw_custom_options={}
let g:nrrw_custom_options['filetype']='php'
E no seu .vimrc
você coloca isso:
let b:nrrw_aucmd_close= "unlet! g:nrrw_custom_options"
Isso deve ser tudo o que precisa ser configurado e, em seguida, sempre que você restringir algo de um arquivo php, ele será automaticamente configurado para filetype php.
Certifique-se de que os plug-ins de tipo de arquivo estejam ativados (você faz isso, colocando algo como
filetype plugin on
no seu .vimrc
.
Tags vim php xml vim-plugins