ОК, ваше пребывание в Windows усложняет ситуацию;)
Поскольку опция 'binary' сбрасывает опцию 'fileformat' (а запись с использованием набора 'binary' всегда записывает с окончанием строки Unix), давайте возьмем большой молоток и сделаем это внешне!
Как насчет определения автокоманды (: help autocommand) для события BufWritePost? Эта автокоманда выполняется после каждой записи целого буфера. В этой автокоманде вызывается небольшой внешний инструмент (php, perl или любой другой скрипт), который удаляет последний символ новой строки только что написанного файла.
Так что это будет выглядеть примерно так и попадет в ваш файл .vimrc:
autocmd! "Remove all autocmds (for current group), see below"
autocmd BufWritePost *.php !your-script <afile>
Обязательно прочитайте всю документацию vim об автокомандах, если вы впервые работаете с автокомандами. Есть некоторые предостережения, например, рекомендуется удалить все autocmds из вашего .vimrc на случай, если ваш .vimrc может быть получен несколько раз.