Detectar tipo de arquivo em região estreita

Detectar tipo de arquivo em região estreita

Estou usando o ótimoNrrwRgnplugar. Costumo editar arquivos XML com PHP em seções CDATA, então, no buffer restrito, recebo o seguinte:

<![CDATA[                        
$foo='bar';
doSomething($foo);
            ]]>

Como posso identificar a região restrita como PHP quando é PHP e como XML ou outra coisa quando é outra coisa? Observe que mesmo neste exemplo, ao selecionar a seção PHP com vit\nras tags CDATA ainda estão lá, então tecnicamente este é um XML não bem formado, não PHP.

Responder1

Não consegui encontrar uma solução para esse problema, então me conformei

nnoremap <leader>js set ft=javascript

Eu também estou curioso por uma solução.

Responder2

Não tenho certeza, entendo perfeitamente o que você quer. O plugin NrrwRgn deve definir automaticamente o tipo de arquivo da janela estreitada para o buffer original. Se não for isso que você deseja, você pode 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, seria $VIM/vimfiles/after/ftplugin/php.vim, onde $VIM é qualquer diretório que o vim lhe diga, ao emitir :echo $VIM) e coloque nele:

let g:nrrw_custom_options={}
let g:nrrw_custom_options['filetype']='php'

E no seu .vimrcvocê coloca isso:

let b:nrrw_aucmd_close= "unlet! g:nrrw_custom_options"

Isso deve ser tudo o que precisa ser configurado e sempre que você restringir algo de um arquivo php, ele será automaticamente definido para o tipo de arquivo php.

Certifique-se de que os plug-ins de tipo de arquivo estejam ativados (faça isso colocando algo como filetype plugin onem seu arquivo .vimrc.

informação relacionada