PHP �μ��������ˡ��ޤȤ�Ƥߤޤ�����
�ޤ���ctags
�ʤɤ�Ȥäơ�Vim ��������˻Ȥ����Ȥ��Ǥ���褦�ˤʤ�ޤ��Τǡ����λ���Ĵ�٤��ꡢ�Ԥä��ꤷ����ȤΥ���ޤȤ�Ƥ����ޤ���
���Υ��ϡ�Gentoo Linux �Ǻ������ޤ������ġ���ΥС������䡢Vim �ΥС������ʤɤˤ�äƤϤ��ޤ������ʤ����⤢��Ȼפ��ޤ������������ˤʤä���������ʤɤ�����ޤ����顢�����Ϣ�����Ƥ���������
Vim �� PHP �μ�������������ˡ�� ctags �ˤĤ��ƤΥ�� �ܼ�
Vim �Ǥϡ�:set dictionary
�˼���ե��������ꤷ��Ctrl+x, Ctrl+k
�ǡ������䴰���Ԥ���褦�ˤʤ�ޤ���������ե������ɤΤ褦�˺������뤫�Ȥ������꤬����ޤ��Τǡ��פ��Ĥ�����ˡ���⤷�Ƥ����ޤ����ɤ��Ȼפ�����ˡ�Ǽ����������Ƥ���������PHP ������ץȤ�������Ѥߴؿ�����Ϥ���������PHP 4 �� PHP 5 �μ����ʬ���뤳�Ȥ��Ǥ��ޤ��Τǡ��������Ȼפ��ޤ���
�ޤ���PHP �ޥ˥奢�������������ɤ��ޤ������ܸ�ޥ˥奢������������ɤ��Ƥ�����Ϥʤ��ΤǤ����������Υ�����饰�δط��ǡ��������ɲä��줿�ؿ��ʤɤ��ܤäƤ��ʤ���ǽ���⤢��ޤ��Τǡ�Vim �μ�����������ˤϡ��Ѹ�Υޥ˥奢��������ɤ��Ȼפ��ޤ���
Ŭ���ʥǥ��쥯�ȥ��������ơ��������� PHP �ޥ˥奢���Ÿ�����ޤ����Ѹ�ޥ˥奢������������ɤ������ϡ��ʲ��Τ褦��Ÿ�����ޤ���
$ mkdir php_manual $ cd php_manual $ tar jxvf php_manual_en.tar.bz2
����ե�����( �ʲ�����Ǥ� php.dict )��������ޤ����ե�����̾����ؿ�̾������������Ƥ��ޤ���¿ʬ�����ޤ������Ȼפ��ޤ��������Ԥ��Ƥ����ǽ���⤢��ޤ��Τǡ��������줿 php.dict �� PHP �δؿ������ޤ���ФǤ��Ƥ��뤫��ǧ���Ƥ�������������ե����뤬�����Ǥ����顢Ŭ���ʥǥ��쥯�ȥ�( �ʲ�����Ǥϡ�~/.vim/dict/ )�˰�ư�����ޤ���
$ ls function.* | sed 's/^function\.\([-_a-z0-9.]*\)\.html$/\1/' | sed 's/-/_/g' | sed 's/\./->/g' | sort > php.dict $ mkdir -p ~/.vim/dict/ $ mv php.dict ~/.vim/dict/
.vimrc(Windows �ʤɤξ��� _vimrc) �ˡ��ʲ���������ɲä��ޤ���php.dict �� �ۡ���ǥ��쥯�ȥ�� ~/.vim/dict/ ���֤�����������Ǥ���
autocmd FileType php :set dictionary=~/.vim/php.dict
Vim �ǡ�PHP �Υ�����ץȤ��줿�ե��������������(����)�⡼�ɤǥ��ޥ�ɤκǽ�ο�ʸ�������Ϥ��ơ�Ctrl-x, Ctrl-k
�����Ϥ���ȡ�����ե�����ˤ���ñ����椫�顢�䴰����ޤ���
�㤨�С�
array_s
�ޤ����Ϥ��ơ�Ctrl-x, Ctrl-k
���ȡ�
array_search
�Τ褦�˴ؿ�̾���䴰����ޤ������θ����ɽ������ˤϡ�Ctrl-n
�����θ����ɽ������ˤϡ�Ctrl-p
���ޤ���
�Ȥꤢ������������ˡ�Ǥ��ñ�˼���ե����������Ǥ���Ȼפ��ޤ��������������ѤǤ��ʤ��ؿ��ʤɤ⼭��˴ޤޤ�Ƥ��ޤ����ᡢ����̵�̤�¿�����⤷��ޤ���
PHP �ޥ˥奢�뤫�鼭������������ˡ�ʳ��ˡ�PHP ������ץȤ�����Ѥߤδؿ�̾����Ϥ���ؿ������ä����Ȥ˵����Ĥ��ޤ����Τǡ����ν��Ϥˡ�����ե������������Ƥ��ɤ��Ȼפ��ޤ���
�㤨�С��ʲ��Τ褦�ʥ�����ץȤ� mkvimdic.php �Ȥ�����¸���ޤ���
<?php $functions = get_defined_functions(); sort( $functions['internal'] ); echo implode( "\n", $functions['internal'] );
(2009.08.16 �ɵ�)
�Ƕ�ϰʲ��Τ褦�ʥ�����ץȤ���Ѥ��Ƽ����������Ƥ��ޤ������湽¤�� PHP 5.3.0 ���ɲä��줿��ư�����������饹�ʤɤ��ɲä��Ƥ��ޤ���
<?php $keywords = array( 'if', 'else', 'elseif', 'endif', 'while', 'endwhile', 'do', 'as', 'for', 'endfor', 'foreach', 'endforeach', 'break', 'continue', 'switch', 'endswitch', 'case', 'default', 'declare', 'enddeclare', 'try', 'catch', 'return', 'exit', 'const', 'class', 'function', 'require', 'include', 'require_once', 'include_once', 'abstract', 'final', 'interface', 'private', 'protected', 'public', 'static', '__LINE__', '__FILE__', '__DIR__', '__FUNCTION__', '__CLASS__', '__METHOD__', '__NAMESPACE__' ); $functions = function_exists( 'get_defined_functions' ) ? get_defined_functions() : array(); $constants = function_exists( 'get_defined_constants' ) ? get_defined_constants() : array(); $interfaces = function_exists( 'get_declared_interfaces' ) ? get_declared_interfaces() : array(); $classes = function_exists( 'get_declared_classes' ) ? get_declared_classes() : array(); $arrays = array_merge( $keywords, $functions['internal'], // array_keys( $constants ), // ������䴰���������Ϥ��ιԤ�ͭ���ˤ��� $interfaces, $classes ); sort( $arrays ); $arrays = array_unique( $arrays ); echo implode( "\n", $arrays );
�ʲ��Τ褦�˥��ޥ�ɥ饤���� PHP �Ǽ¹Ԥ���ȡ����Ϥ��줿�ؿ����������Ϥ���ޤ������Υե������Ȥ��ƻ��Ѥ��ޤ���
$ php mkvimdic.php > php.dict
������ˡ�ξ�硢�����Ѥ��Ƥ��� PHP �ǻ��Ѳ�ǽ�ʴؿ��Τߤ����Ͽ���뤳�Ȥ��Ǥ��ޤ�����������PHP �ΥС�����åפ䡢�ƥ���ѥ����Ԥä����ϡ��ºݤ˻��ѤǤ���ؿ��ȼ������Ͽ����Ƥ���ؿ��˰㤤���Ф��ǽ��������ޤ��Τǡ��С�����åפ䡢����ѥ��륪�ץ������ѹ��������ˤϼ������ľ���������ɤ��Ȼפ��ޤ���
���Ϥ��䴰��ǽ����Ѥ�����ˡ�Ȥ��ơ�ctags
��Ȥ����Ȥ�Ǥ���褦�Ǥ���ctags
�������䴰�����Ǥʤ������������פε�ǽ�������Ǥ��Τǡ��Ȥ���褦�ˤ��Ƥ����ȡ�������ץȤ�Ȥ��ʤɤ����˸�Ψ���ɤ��ʤ�ޤ���
ctags �ϡ��С������ 5.0 �ʹߤ� PHP �ݡ��Ȥ��Ƥ��ޤ��Τǡ�ctags --version
��¹Ԥ��ơ��С������ 5.0 �ʹߤǤ��뤳�Ȥ��ǧ���Ƥ����Ƥ����������⤷��ctags ���ʤ����ޤ��ϡ��С�����Ť����ϡ�Exuberant Ctags ���顢�������ե���������������ɤ��ơ�����ѥ��뤹�뤫���� Linux �ǥ����ȥ�ӥ塼���������ۤ���Ƥ���ѥå������ʤɤȡ��뤷�Ƥ���������
ctags
��Ȥäơ������ȥǥ��쥯�ȥ�ʲ��Υե�������Ф��ơ�tags �ե�������������ˤϡ��ʲ��Τ褦�ˤ��ޤ�����ĥ�Ҥϼ�ưȽ�̤Dz��Ϥ��Ƥ���ޤ������ǥե���ȤǤϡ���ĥ�Ҥ� .inc
�� PHP �ե�����Ȥ��Ƥߤʤ��Ƥ���ޤ���Τǡ����ץ����� --langmap
�� .inc
�� PHP �ե�����Ȥ��Ƥߤʤ��褦�˻��ꤷ�ޤ�����ĥ�Ҥȥե�����δ�Ϣ�դ��ˤĤ��Ƥϡ�ctags
��¹Ԥ����ɽ������ޤ��Τǡ��ܤ����Ϥ��ν��ϤȤ��Ƥ���������--list-maps
$ ctags -a -R --langmap=PHP:.php.inc --php-types=c+f ./
��ñ�˥��ץ����������Ƥ����ޤ����ʲ��˾Ҳ𤷤���ΰʳ��Υ��ץ����ˤĤ��Ƥϡ�ctags --help
�dz�ǧ���Ƥ���������
���ץ���� | ���� |
---|---|
-a | ���� tags �ե����뤬������ϡ��ե�������������ɲä��ޤ��� |
-R | ���ꤷ���ǥ��쥯�ȥ�˴ޤޤ�����ƤΥե������Ĵ�٤ޤ��� |
--langmap |
�ǥե���Ȥ����ꤵ��Ƥ���ե�����γ�ĥ����������ޤ���
�ǥե��������ϡ�ctags �dz�ǧ�Ǥ��ޤ��� |
--php-types |
PHP �ե������ tags �ե���������������Υ���̾�� PHP �Υ��饹�ȴؿ���ξ������Ѥ��ޤ���
���ѤǤ��륿��̾�ϡ�ctags �dz�ǧ�Ǥ��ޤ���
�㤨�С�¾�θ���ξ�硢Java �ǻ��ѤǤ��륿��̾�� ctags ��
�褦�˻��ꤹ��ȳ�ǧ�Ǥ��ޤ��� |
��������λ����ȡ������ȥǥ��쥯�ȥ�� tags �Ȥ����ե����뤬��������Ƥ��ޤ���Vim
�Ǥϡ��ǥե���Ȥǡ������ȥǥ��쥯�ȥ�� tags �ե��������Ѥ���褦�ˤʤäƤ���Ȼפ��ޤ�����ǧ����ˤϡ�Vim �ǰʲ��Τ褦�ˤ��Ƥ���������
:set tags
�ʲ��Τ褦��ɽ������Ƥ���� tags ����Ͽ���줿ñ����Ф��ơ����������פ��䴰��ǽ�����ѤǤ���褦�ˤʤäƤ���Ȼפ��ޤ���
tags=./tags,./TAGS,tags,TAGS
����ɽ������ʤ��ä����ϡ��ʲ��Τ褦�˥ե�����ξ�����ꤷ�Ƥ���������
:set tags=./tags
�ʾ�ǡ�tags �ե����뤬����ǥ��쥯�ȥ�� PHP �ե�������Խ�������������ؿ�̾�ξ�� Ctrl+]
���ȡ����̤��ڤ��ؤ�äơ�������줿�ե�����γ����ؿ��ΰ��֤˰�ư����Ϥ��Ǥ������ξ��������ϡ�Ctrl+t
���Ƥ���������Ctrl+w, Ctrl+]
�Ȥ���ȡ�������ɥ���ʬ�䤵��ơ������ؿ���ɽ������ޤ��Τǡ����ޤ��Ȥ�ʬ����������Ǥ���
�ޤ���������줿�ؿ�̾������ޤ����Ϥ��ơ�Ctrl+x, Ctrl+]
�Ȥ���ȡ�tags �ե������������줿�ؿ�̾���䴰���Ԥ��ޤ�������ե������Ʊ���褦�ˡ�Ctrl+n
�� Ctrl+p
���Ѵ���������뤳�Ȥ��Ǥ��ޤ���
PHP �� PEAR �ʤɤΥ⥸�塼������Ѥ��Ƥ����硢�ʲ��Τ褦�ˡ�tags �ե������ޤȤ�Ƥ����Ȥ���������ˤʤ�Ȼפ��ޤ���
ctags
��Ȥäơ�PEAR �ȡ��뤷�Ƥ���ǥ��쥯�ȥ� ( �����Ǥ� /usr/local/lib/php/ )�� tags �ե������������ޤ��������Ǥϡ�pear.tags �Ȥ����ե�����̾�ǽ��Ϥ��Ƥ��ޤ���
$ ctags -f pear.tags --langmap=PHP:.php.inc --php-types=c+f `find /usr/local/lib/php/ -name '*.php' -or -name '*.inc'`
PEAR �Υǥ��쥯�ȥ�ˤϡ�PHP �ʳ��Υե������ޤޤ�Ƥ��ޤ��Τǡ�tags �ե���������פʾ��ޤޤ��Τ���뤿��ˡ�find
���ޥ�ɤ� ��ĥ�Ҥ� php
�� inc
�ˤʤäƤ���ե�����Τߡ��������Ͽ����褦�ˤ��Ƥ��ޤ���
�����ȥǥ��쥯�ȥ�� pear.tags �Ȥ����ե����뤬��������ޤ��Τǡ��ե������Ǥ�դξ��( �����Ǥϡ�~/.vim/tags )�˰�ư�����ޤ���
$ mkdir -p ~/.vim/tags $ mv pear.tags ~/.vim/tags/
~/.vimrc ���Խ����ơ�PHP �ե�������Խ�����Ȥ��Τߡ�tags �ե������ƤӽФ��褦�����ꤷ�ޤ���
autocmd FileType php :set tags+=~/.vim/tags/pear.tags
��������PEAR �Υ⥸�塼����ɲä����ꡢ���åץǡ��Ȥ������ϡ����� ctags
���ޥ�ɤ�¹Ԥ���ɬ�פ�����ޤ���
PHP �ޥ˥奢���ɽ������ Vim ������ץ��ʤɤ�Ƥߤޤ�����PHP ������ץȤ���ˤϰճ��������Ǥ���
�Ƕ�μ�������ѤΥ�����ץȤ�Ǻܡ�
������æ���ʤɡ����ˤʤä���ʬ�ν������������������ץȤ��ñ�ʷ����ѹ���
Vim �Υ����Ȥǡ�PHP.dict 0.2 ����������Ƥ����Τ��ɵ���
���Ǻ�����������