
Я использую потрясающийNrrwRgnплагин. Я часто редактирую XML-файлы с PHP в разделах CDATA, поэтому в суженном буфере получаю это:
<![CDATA[
$foo='bar';
doSomething($foo);
]]>
Как я могу идентифицировать суженную область как PHP, когда это PHP, и как XML или что-то еще, когда это что-то еще? Обратите внимание, что даже в этом примере, выбрав раздел PHP с vit\nr
тегами CDATA, они все еще там, так что технически это некорректно сформированный XML, а не PHP.
решение1
Я не смог найти решение этой проблемы, поэтому остановился на
nnoremap <leader>js set ft=javascript
Мне тоже интересно решение.
решение2
Я не совсем уверен, я полностью понимаю, чего вы хотите. Плагин NrrwRgn должен автоматически устанавливать тип файла суженного окна на тип исходного буфера. Если это не то, что вам нужно, вы можете, однако, подключиться к команде NrrwRgn при создании и закрытии окон. Итак, вот что вы можете сделать:
Создайте файл ~/.vim/after/ftplugin/php.vim
(создайте несуществующие каталоги, в Windows это будет $VIM/vimfiles/after/ftplugin/php.vim
, где $VIM — это любой каталог, который вам укажет vim при запуске :echo $VIM
) и поместите в него:
let g:nrrw_custom_options={}
let g:nrrw_custom_options['filetype']='php'
И в вашем .vimrc
вы поместили это:
let b:nrrw_aucmd_close= "unlet! g:nrrw_custom_options"
Это все, что нужно настроить, и затем всякий раз, когда вы будете сужать что-либо в файле php, ему будет автоматически присвоен тип файла php.
Убедитесь, что плагины типов файлов включены (это можно сделать, добавив
filetype plugin on
в файл .vimrc
.