Вот, решил прикрутить к vim поддержку PHP (чтобы можно было делать
completition для функций PHP и при необходимости просматривать
определения функций).
1. Выкачиваем описание функций PHP из http://www.php.net в формате
HTML в виде "много файлов" (качество русского перевода у них не
очень высокое, так что наверное лучше уж по английски ;-) )
(http://www.php.net/get/php_manual_ru.tar.gz/from/a/mirror)
2. Файлы function*.html переписать в отдельный каталог и
преобразовать в txt скриптом htm2txt.sh:
for f in *.html
do
echo "$f"
lynx -dump -force-html -display_charset=koi8-r "$f"|sed -e "/file:/d"|sed -e "/^References/d">$f.txt
done
3. В полученных файлах определение функции находится в строке, номер
которой на 2 больше чем у строки со словом Description. Теперь
надо:
+ закомментировать все строки кроме той, где определена
функция,
+ преобразовать определение ф-и в PHP-подобное,
+ добавить PHP-шные теги <? и ?>
+ и напустить на полученные тексты программу [4]ctags
Это делает скрипт txt2php.sh:
for f in *.txt
do
echo "$f"
num=`grep -n ^Description $f`
dn=`echo "$num"|awk -F ":" '{print $1}'`
if [ -n "$dn" ]
then
fn=$((dn+2))
cat "$f"|sed -e "s/^////"| sed -e "$fn s/^////"|sed -e "1,/__/ d"|sed -e "/__/,1200 d">$f.tmp
cat /dev/null> $f.tmp2
while read lll
do
comment=${lll:0:2}
if [ "$comment" == "//" ]
then
echo "$lll">>$f.tmp2
else
echo "$lll"|awk '{print "function "$2$3$4$5$6$7$8$9":"$1}'>>$f.tmp2
fi
done <$f.tmp
cat php-start-tag $f.tmp2 php-stop-tag>$f.php
rm $f.tmp $f.tmp2
fi
done
ctags *.php
Готово!
Полученные файлики *.php и tags переписать туда, где они будут
доступны для vim (например в ~/php-tags). И не забыть в ~/.vimrc
добавить строчку
set tags+=~/php-tags/tags
Теперь для автоматического дополнения имени ф-и в режиме INSERT надо
нажать CTRL-X CTRL-], чтобы посмотреть определение ф-и под курсором
нажать CTRL-W }
Igor Chumak, igoor(собак)mail.ru
715 Прочтений • [Включение поддержи PHP в vim (vim php)] [08.05.2012] [Комментариев: 0]